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年。