在我的游戏中,我希望玩家在游戏中的任何时刻摇他的手机,每一次的摇晃都会导致武器的交换。
例如:玩家有刀子,摇着手机,并切换到片上。
if (accelerometer.x >= 5 || accelerometer.x <= -5 || accelerometer.y >= 5
|| accelerometer.y <= -5 || accelerometer.z >= 5 || accelerometer.z <= -5 )
switchWep();
这起作用了,问题是--它有一个副作用--.When--玩家摇着手机,有时它会换两次武器。所以我想限制它,这样如果有大的震动,游戏就不会从武器0切换到武器2。
请帮帮忙。
发布于 2012-08-15 12:10:06
你可以设置一个简单的时间限制,这样你就不能在彼此之后切换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
}
}
发布于 2012-08-31 21:11:48
您可以尝试将.5更改为更高的数字。
https://stackoverflow.com/questions/11968970
复制相似问题