- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
你好安卓开发者,
我正在使用 OpenGLES 1.0 在 Eclipse 中为 Android 开发一个简单的游戏。我正在使用 Samsung Galaxy S2 Android(2.3) 作为开发设备。
我有一个关于双核和使帧速率恒定的问题。
所以我成功地创建了 GLSurfaceView 并覆盖了 onDrawFrame() 函数,我在其中调用了 LogicUpdate(deltatime) 函数和 Render() 函数。
是的,现在都在单线程中。
我遇到的问题是双核。如果我通过转到设置-> 节能并检查系统节能来禁用双核,我意识到渲染会自动锁定在 30 FPS。但是,如果我通过取消选中系统省电来启用双核,我会看到渲染被锁定在 60 FPS,但是手机会变热并且电池消耗得非常快。
所以我的想法是让我的游戏以 30 FPS 的速度运行以节省电量。
为此,我使用下面的代码。
在我进行逻辑更新之前,我称之为代码的和平,记住所有这些都是在 onDrawFrame() 中完成的。
if( CONST_FPS > 0 && StartTime > 0 )
{
/////////////////////////////////////////////////////////////////
// Get frame time
////////////////////////////////////////////////////////////////
long endTime = System.currentTimeMillis();
long time = endTime - StartTime;
//
long wantedtime = 1000 / CONST_FPS;
//
long wait = 0;
if( time < wantedtime )
{
wait = wantedtime - time;
//
Thread.sleep(wait);
}
else
{
//Time to big game will slow down
}
}
其中 CONST_FPS = 30
然后
StartTime = System.currentTimeMillis(); //
UpdateLogic(1.0 / CONST_FPS);
Render();
30 FPS 的游戏非常流畅,主要是因为它不需要锁定 FPS。但是,当我试图将 60FPS 锁定到 30FPS 时,我会口吃。我做了一些研究,发现 Thread.Sleep() 并不精确。这是真的?在锁定 60FPS 到 30FPS 时,我还能做些什么来让游戏更流畅。
感谢您的回答...
最佳答案
您应该使用耗时来衡量您的所有运动,以便运动在不同的 FPS 速率下保持平稳。您可以像这样获得耗时:
long currentTime = System.currentTimeMillis();
float elapsed = (System.currentTimeMillis() - lastFrameTime) * .001f;//convert ms to seconds
lastFrameTime = currentTime;
然后以单位每秒表示您的速度,并像这样更新位置:
sprite.x += (sprite.xspeed * elapsed);
关于android - 恒定 FPS Android OpenGLES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11381543/
要求: 我们在数据库中有值 Chennai Baroda Bangalore New Delhi São Paulo, Lisboa San Jose 等... 所以我想将这些字符串转换成一个唯一的短
我需要通过 TCP 加密和发送数据(每条消息从几百字节到几百兆字节)以 block 从 Java 到 C++ 程序,并且需要发送的大小提前发送数据,以便收件人知道何时停止读取当前消息并处理它,然后等待
我不太知道如何问这个问题,因此我将其作为示例: 想象在一个应用程序中您有一个Country对象。此对象有两个属性:Name和'Bordering Countries'集合。稍后可能会添加更多属性,但这
我们正在尝试使用 IoT 中心、流分析和表存储来处理仪表板上的事件驱动图标(开/关/事件)。我无法让实际过程在 6 秒内完成。流分析的水印恒定为 5 秒。该网站声称即时处理。 https://azur
我正在尝试获取一个 JTabbedPane,其中所有选项卡(实际选项卡,而不是组件)具有相同的宽度(最宽标签所需的最小宽度或恒定宽度)。 我试图覆盖 BasicTabbedPaneUI.getTabB
你好安卓开发者, 我正在使用 OpenGLES 1.0 在 Eclipse 中为 Android 开发一个简单的游戏。我正在使用 Samsung Galaxy S2 Android(2.3) 作为开发
我正在尝试使用 ColorMatrix 为整个图像设置一个恒定的色调值。我的目标是使整个图像看起来颜色相同,而不会失去任何区域的亮度。我找到了一种使用 ColorMatrix 来移动图像的色调值的方法
我最近将我的 Postgres 数据库从 Windows 迁移到 CentOS 6.7。在 Windows 上,数据库从不使用太多 CPU,但在 Linux 上,我看到它使用恒定的 ~30% CPU(
你好,我正在用 SDL2 开发一款很棒的游戏,我添加了一个 FPS 调节器以使其在每台机器上都能流畅运行,但后来我创建了一个示例程序来输出 fps(不是调节,只是输出以查看电流的功率机器运行 ) 我在
我在 IntelliJ IDEA 13.0 中开发了一个应用程序,但是当我在我的设备上运行该应用程序时,它会不断等待调试器(如果我在 Debug模式下运行,调试器连接时没问题)但是如果远离计算机,我无
我想在 stat_密度2 图中绘制多个组,其中 alpha 值与每组中的观察计数相关。然而,由 stat_密度2d 形成的水平似乎已标准化为每组中的观察数量。例如, temp <- rbind(mov
我是一名优秀的程序员,十分优秀!