android - 等待用户输入

时间:2011-09-26 10:52:24

标签: android input

我正在创建一个带有1个人类播放器和3个电脑播放器的黑桃应用程序。

我遇到的问题是,游戏必须顺序发生(顺时针),我需要我的程序等待玩家输入。我不能使用wait()和notify()。我尝试过while循环来检查用户是否选择了卡但是那些会阻止程序运行。我尝试过递归方法,在玩家选择卡之前不会返回任何内容。那也行不通。那我该怎么办?我被卡住了。

我的方法是这样的(省略了不相关的代码)

private void game(){
   while(there are more tricks to be played)
      while(each player has not played){
         if(human turn)
            get input from player
         else
            computer plays
      }
}

3 个答案:

答案 0 :(得分:1)

您可以尝试添加事件处理程序。每次用户选择卡时,它都会尝试触发事件。

答案 1 :(得分:1)

试试这个。

创建一个线程并在该威胁中调用sleep(1000);

答案 2 :(得分:1)

也许你应该改变你的游戏控制器。不要等待任何事情,让程序不断地绘制屏幕。如果用户没有输入任何内容,则同一屏幕始终进行绘制。

一旦他按下一个键(或点击一张卡片或你所拥有的任何事件),只需修改paint方法的参数(要绘制的屏幕)。因此,您将分离绘画屏幕和输入处理。这是一种称为MVC模型的常用技术。

也许这会有所帮助(这是我的游戏创建博客,其中的链接也很有帮助): http://m3ph1st0s.blogspot.ro/2012/12/create-games-with-libgdx-library-in.html

您不需要将所有游戏调整到那里描述的游戏,只需要将输入与绘画分开。作为一般技术,你不应该有输入决定绘画。

希望它有所帮助。不要犹豫,请求进一步的帮助。