Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android震动代码_Java_Android_Accelerometer_Shake - Fatal编程技术网

Java Android震动代码

Java Android震动代码,java,android,accelerometer,shake,Java,Android,Accelerometer,Shake,在我的游戏中,我希望玩家在游戏过程中的任何时候晃动手机,每次晃动都会导致武器切换 示例:玩家持刀,[摇手机]并切换到武士刀 if (accelerometer.x >= 5 || accelerometer.x <= -5 || accelerometer.y >= 5 || accelerometer.y <= -5 || accelerometer.z >= 5 || accelerometer.z <= -5 ) switchWep

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

示例:玩家持刀,[摇手机]并切换到武士刀

if (accelerometer.x >= 5 || accelerometer.x <= -5   || accelerometer.y >= 5 
   || accelerometer.y <= -5   || accelerometer.z >= 5 || accelerometer.z <= -5 )
   switchWep();        
如果(加速计.x>=5 | |加速计.x=5

||Accelerator.y=5 | | Accelerator.z您可以设置一个简单的时间限制,这样您就不能在彼此之间切换两次。我认为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
    }
}

你可以设置一个简单的时间限制,这样你就不能在两次切换后再切换两次。我认为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
    }
}

你可以试着把.5改成一个更高的数字。

你可以试着把.5改成一个更高的数字。

我在想,但这是我的第一个Android游戏。我怎么告诉它等待?这会导致应用程序在手机上崩溃。@katrina试着增加间隔?它换了一次武器,但就这样,大崩溃。好的。我会尝试吗ncrease到2000年。我在想,但这是我的第一款Android游戏。我如何告诉它等待?这会导致应用程序在手机上崩溃。@katrina试图增加间隔?它会更换一次武器,但就是这样,big crash。好的。我会尝试增加到2000年。