在我的游戏中,我希望玩家在游戏中的任何时候都摇晃手机,每次摇晃都会导致武器切换。

示例:玩家拿着刀,[摇动手机],然后切换到武士刀。

if (accelerometer.x >= 5 || accelerometer.x <= -5   || accelerometer.y >= 5
   || accelerometer.y <= -5   || accelerometer.z >= 5 || accelerometer.z <= -5 )
   switchWep();


这样做是有副作用的,当玩家摇动手机有时会两次切换武器。因此,我想限制它,以便在发生剧烈震动时游戏不会从武器0切换到武器2。

请帮忙。

最佳答案

您可以设置一个简单的时间限制,以使彼此之间不能切换2次。我认为1秒-500毫秒就足以避免两次切换。

编辑:
您可以这样做,但是我不确定它是最理想的还是锁定安全的方式。

protected void shake() {
    if(mAllowShake) {
        mAllowShake = false;

        // do shake

        Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                mAllowShake = true;
            }
        };

        handler.sendMessageDelayed(null, 500);  // time in milliseconds
    }
}

关于java - Android摇码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11968970/

10-12 12:35