如何在循环中等待按下按钮?

时间:2009-10-29 01:50:32

标签: actionscript-2

假设我有一个简单的程序,可以模拟棋盘游戏,其中有许多玩家轮流掷骰子在棋盘上移动。玩家可以是人或计算机 如果这是一个命令行风格的游戏,我可以简单地做一个循环迭代玩家,这将调用该玩家的diceRoll函数。

如果播放器是电脑播放器,diceRoll只是告诉电脑掷骰子 如果玩家是人,则diceRoll将等待,直到用户输入roll命令然后继续。

如何将这个想法转移到平面设计中?我不认为连续检查滚动按钮是否被按下是有意义的。我正在使用actionscript 2,但想法可以是你想要的任何语言。我想就设计这个问题的最佳方法提出一些意见。我不认为我不知道某种'waitForButtonPress'功能?

2 个答案:

答案 0 :(得分:1)

我想我找到了一个我喜欢的解决方案。 主游戏类将具有nextTurn函数,如下所示:

nextTurn() {
   bool guiSet = false
   while (guiSet = false) {
      //Get the next player
      if (next player is human) {
         //enable the gui (ie. the 'Roll Dice' button)
         guiSet = true
      } else {
         //The player is a computer
         //Have the computer roll the dice and make any necessary decisions
      }
   }
}

当一名人类玩家完成转弯时,将拨打nextTurn以继续玩游戏。当计算机完成转弯时,流程仍处于while循环中,因此游戏将继续。

答案 1 :(得分:0)

取决于游戏,如果你有N个回合而且每个其他回合都是人类转向那么你可以简单地使用if elses在循环内调用getUserResponse()。

for i to N
if(i%2==0)
getUserRoll()
else
getComputerRoll()

如果有任何约束,请在if条件中检查它们。