我有一个小问题。我正在制作一个简单的棋盘游戏。用户可以与 AI 对战。它工作正常。游戏规则规定,如果有人掷骰子并得到 1 或 4,则他可以再次玩。所以我做了一个for循环。它也有效。AI 根据需要播放多次,然后允许 P1 播放。我的问题是棋子运动的所有动画同时发生。示例:轮到 AI:4. 再次播放:1. 再次播放:5. 轮到玩家。4 & 1 & 5 的动画同时播放(看起来很奇怪)。我希望在 AI 的第一次投掷和下一次投掷之间有 2 秒的延迟,以便动画有时间播放。我读到我应该使用 atimer
或 asetInterval
但我真的不知道在哪里以及如何将它放在我的循环中。
编辑:更新代码,感谢以下答案:
function fnTimeOut() {
var intervalId: uint = setTimeout(fnNextPlayer, 2000, null);
}
next.addEventListener(MouseEvent.CLICK, fnNextPlayer);
function fnNextPlayer (e:Event):void{
if (player2.currentFrame == 2) { //AI's turn
randDice=random(1, 6); //dice thrown (have a random function setup already)
if (randDice==1){
//start animation
//move pawns
fnTimeOut(); //restarts the function after 2secs
}
if (randDice==2){
//start animation
//move pawns
player2.gotoAndStop(1); //starts player1's turns
//stop loop because not 1 or 4
}
}
}
}
我希望有人可以帮助我:) 谢谢。