2025-01-22 TIL
오늘 작업
- 몬스터 관련 handler 작업
S2CstateSyncNotification 패킷을 통해 클라이언트에 score, gold 등 각각의 플레이어의 점수를 동기화했다.
원래 계획은 updateLoop 함수를 통해서 update를 관리할 예정이었으나 게임이 시작되기도 전에 동기화 패킷이 전달되는 문제가 생겨 수정 중이다.
function update() {
const gameSessions = getAllGameSessions();
for (let gameSession of gameSessions) {
//2부터 게임이 시작된다고 했으니 그 때부터 보내면 될 듯 하다.
//너무 빠르게 시작했을 때 게임이 시작하기도 전에 동기화 패킷을 보내면서 문제가 발생하는 문제가 있다.
//제대로 게임이 실행되기까지 대기할 수 있도록 해야 한다.
if (gameSession.state === 'inProgress') {
//console.log("업데이트 되는 중");
gameSession.stateSyn();
}
}
//여기서 프레임마다 업데이트를 해보도록 하자.
}
//여기에서 나중에 별도의 업데이트가 필요한 게 있다면 추가하도록 하자.
//나중에 변경될 수도 있으니 생각해 보자.
//나중에 match가 되었을 때 이걸 붙여 넣으면 되지 않을까 싶다.
export function updateLoop() {
//게임 내 데이터의 동기화는 차라리 좀 딜레이 있게 해보도록 할까?
//이 쪽은 동기화 업데이트의 경우
setInterval(() => {
//console.log("업데이트 확인용")
update();
}, 1000);
}
다음 작업
일단 각각의 이벤트가 호출되었을 때마다 별도의 동기화 함수를 보내도록 해본다.
현재 클라이언트 쪽의 현재 플레이어의 HP가 0으로 표기되는 문제를 해결하도록 해본다.