1

我正在开发一款适用于 Android 的迷你游戏。当我单击并按住正在单击的按钮时,我希望某个事件应该每隔一段时间触发一次。

public boolean onKeyDown(int keyCode, KeyEvent msg) {
    if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
        moveLeft();
        return (true);
    }

    if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
        moveRight();
        return (true);
    }
}

如果我使用模拟器和键盘上的箭头,则此代码有效。我还在布局上放了 2 个按钮,现在希望在一段时间间隔触摸按钮时,对象向左或向右移动的效果相同。我怎样才能做到这一点 ?

4

1 回答 1

2

什么按钮?安卓手机没有左右键。

但无论如何,最好的方法取决于我猜你的游戏是如何构建的,你可能应该使用 postDelay 或线程。

也许您可以尝试设置一个布尔值,当键按下时将设置为 true,当键按下时设置为 false,然后在键按下时运行 postDelay,如下所示

new Handler().postDelayed(new Runnable(){
        public void run(){
          if (movingLeft) //your boolean
              moveLeft();
        }
    },1000); //time interval in milliseconds

不要忘记杀死它,你不希望成千上万的处理程序运行..虽然我真的没有任何编程游戏的经验..希望它有所帮助。

于 2011-11-21T17:34:13.120 回答