我正在创建一个游戏,用户必须更快地点击屏幕才能让他们在游戏中走得更快,但是我遇到了一些问题。我已经制作了游戏,因此它会计算用户上次点击和当前点击的每分钟点击次数,但是这种方法似乎很不稳定并且效果不佳。我也想不出另一种方法来做到这一点,所以当他们根本不点击时,速度就会变慢。
我将如何为游戏创建这种机制,让用户点击得越快,游戏进行得越快,如果他们根本不点击,游戏就会变慢直至停止。
谢谢
这是我目前所做的一个 fragment ,用于计算用户的每分钟点击次数 (TPM)。 (这是在触摸方法中)。我目前正在将 TPM 传递给更新方法,该方法在每次更新时将背景移动 TPM/100(它以 30FPS 运行)
if (thisTouch == 0 || lastTouch == 0) {
Log.d("info","First Touch");
thisTouch = lastTouch = System.currentTimeMillis();
} else {
Log.d("d","touch");
thisTouch = System.currentTimeMillis();
long difference = thisTouch - lastTouch;
TPM = (int)((1000*60)/difference);
lastTouch = thisTouch;
}
我想知道如何更改此设置,以便当他们更快地点击时游戏速度加快,而当他们不触摸屏幕时游戏速度变慢。
最佳答案
也许你可以这样做:
- 创建一个 PriorityQueue
- 每当用户点击屏幕时,将 (currentTime + someTimeOut) 添加到队列
- 每当您要检查当前速度(例如队列大小)时,首先删除所有元素 > currentTime。
当然,如果您这样做,请不要忘记添加适当的线程安全措施。
关于java - 通过屏幕触摸速度调节游戏速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11523548/