我正在制作一部有两部分的手机游戏。第一个是慢,第二个是快。第二个在第一个满足后执行。
我在考虑在游戏循环中运行游戏并将循环中的两个阶段分开:
MainGameLoop:
while (running) {
while (!FirstStage.isDone) {
FirstStage.run();
}
while (!SecondStage.isDone) {
SecondStage.run();
}
}
这是正确的范例吗?我可以参考哪些既定的游戏编程范例/模式?
答案 0 :(得分:0)
从理论上讲,这是正确的。但实际上,你的应用程序将是事件驱动的,并且可能没有它自己的循环,但是利用系统的事件循环,例如在Android上。 这通常是隐含的。 因此,在第一阶段完成时,将触发一个事件(将调用一个方法),该事件设置一个指示第二阶段正在运行的状态。
答案 1 :(得分:0)
使用“状态机”的好方法是使用“状态机”。非常容易使用和扩展。
while(true)
{
switch(game_state)
{
case SLOW_STUFF: // whatver
if(move_on): game_state = FAST_STUFF; // or something like this.
break;
case FAST_STUFF: // whatever..
// then also...
case GAME_OVER:
case WAIT_FOR_START:
case QUIT:
// save state..
return;
etc
}
}