1

当在我的游戏中,玩家移动时,在计算 AI 移动之前它是不可见的。然后两个动作一起显示。

我想展示玩家的移动,然后是 AI 移动(在计算之后)。我尝试了线程延迟但没有用。如何使用某种暂停来添加这种可见性,但该暂停不能暂停程序的执行?

4

2 回答 2

1
  1. 玩家做出选择,停止接受玩家输入,在一个线程中启动玩家移动动画并在另一个线程中启动 AI。
  2. 当 AI 完成时,玩家移动动画未完成:wait(100)。当玩家移动动画完成后,开始播放 AI 移动动画。
  3. 当 AI 移动动画完成后,恢复接受玩家输入。

    在第 2 步中,如果 AI 花费的时间比玩家移动的动画长,则显示一些等待动画。在开始 AI 移动动画之前,应停止此等待动画。

于 2012-08-16T11:44:27.377 回答
-1

您始终可以创建一个布尔检查,仅当您的玩家完成移动时才设置为 true。

public class ... 
{
    boolean playerMoveMade = false;

    ...

    public void gameCycle() 
    {
        ...

        if (playerMoveMade) 
        {
            playerMoveMade = false;
            // ... render AI move
        }
    }
}
于 2012-08-15T17:29:17.880 回答