나는 실제로 많은 게임 프로그래밍을 한 적이 없었습니다.
테트리스 게임을 만들고 있는데, 메인 루프가 이런 식으로 보인다고 상상해보십시오.
for every frame
handle input
if it's time to make the current block move down a row
if we can move the block
move the block
else
remove all complete rows
move rows down so there are no gaps
if we can spawn a new block
spawn a new current block
else
game over
게임에서 모든 것은 지금까지 즉시 발생 - 상황이 즉시 양산하는, 내가하면 행이 즉시 등 그러나 제거 하지 않는 것을 즉시 (즉, 애니메이션 일)이 일어날까요?
for every frame
handle input
if it's time to make the current block move down a row
if we can move the block
move the block
else
?? animate complete rows disappearing (somehow, wait over multiple frames until the animation is done)
?? animate rows moving downwards (and again, wait over multiple frames)
if we can spawn a new block
spawn a new current block
else
game over
내 탁구 복제에서는 모든 프레임이 공을 움직이고 충돌을 확인하기 때문에 문제가되지 않았습니다.
이 문제를 어떻게 해결해야합니까? 확실히 대부분의 게임에는 프레임보다 많은 작업이 필요하며 다른 작업은 작업이 완료 될 때까지 중지됩니다.
Action
클래스와 수행해야 할 작업 대기열을 상상해보십시오 . 작업이 완료되면 대기열에서 작업을 제거하고 다음 작업 등을 수행하십시오. 상태 시스템보다 훨씬 유연합니다.