gpt4 book ai didi

java - Android 永远循环/重复数学的最快和最正确的方法是什么?

转载 作者:行者123 更新时间:2023-11-30 01:00:02 25 4
gpt4 key购买 nike

我开始在 Android 中编程并创建一个不断进行数学运算并显示快速变化的数字(基本加法,但数字很大)的游戏

我曾在按下按钮时使用 .postDelayed(),但我觉得这不是最好或最有效的方法。我还想知道对于重复的内容,推荐的最快速度是多少?

我的按钮是这样的:

    buttonAdd.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
myMethod();
buttonAdd.postDelayed(myMethodRun, delay);
break;
case MotionEvent.ACTION_UP:
buttonAdd.removeCallbacks(myMethodRun);
break;
}
return true;
}
});

Runnable myMethodRun = new Runnable() {
@Override
public void run() {
myMethod();
buttonAdd.postDelayed(this, delay);
}
};

我想做同样的事情,只使用 Root View 来制作一个 postDelayed()

body.postDelayed(runForever, delayTime);

Runnable runForever = new Runnable() {
@Override
public void run() {
runForever();
buttonAdd.postDelayed(this, delay);
}
};

while(true) 是这样做的好方法吗?我不想让一切都重载

是这样吗?还是我会使用过多的 UI 线程?显然,我还是有点新。 我想永远重复一个方法,我想知道推荐的最快延迟时间是多少

最佳答案

对于一款游戏来说,最重要的是用户体验,帧数是用户体验的主要组成部分。如果您保持适当的帧数,例如每秒 30 帧,那么用户会认为游戏中的所有过渡都很流畅。或者足够光滑,如果你愿意的话。如果您使用更高的 fps(例如每秒 60 帧),游戏的感觉可能会更好,但这种差异几乎不值得移动设备上的额外功耗。 (目前,60 fps 仅适用于在高端硬件上运行的高端游戏,例如配备顶级显卡的游戏机或台式电脑。)

因此,如果您以每秒 30 帧的速度拍摄,那么您只需每 33 毫秒渲染一次帧。比这更快地执行计算是没有意义的,因为这意味着您将计算永远不会呈现的东西,因此用户永远不会看到。

因此,只需将计时器设置为每 33 毫秒触发一次,进行计算、渲染帧、返回操作系统直到计时器再次触发。

关于java - Android 永远循环/重复数学的最快和最正确的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39560728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com