在我的游戏中,我希望玩家在游戏过程中随时摇动手机,每次震动都会导致切换武器。
示例:玩家有刀,[摇动手机]并切换到武士刀。
if (accelerometer.x >= 5 || accelerometer.x <= -5 || accelerometer.y >= 5
|| accelerometer.y <= -5 || accelerometer.z >= 5 || accelerometer.z <= -5 )
switchWep();
这有效,问题是它有副作用。当玩家摇动手机时,它有时会切换两次武器。所以我想限制它,以便如果有一个大的震动,游戏不会从武器0切换到武器2。
请帮忙。
答案 0 :(得分:3)
您可以设置一个简单的时间限制,这样您就无法相互切换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
}
}
答案 1 :(得分:0)
您可以尝试将.5更改为更高的数字。