我正在尝试为我的 Android 游戏添加暂停/恢复支持。如何在用户按下暂停选项时暂停当前线程并在用户选择恢复选项时恢复线程?任何建议/想法都会有很大帮助。
最佳答案
尝试查看 ReplicaIsland 的来源或 LunarLander 中的示例代码例子。这两个是流行的起点示例。
此外,请确保您了解线程的工作原理以及您是否真的想暂停线程。另一种方法是在线程仍在运行时简单地暂停绘图/更新。像这样的一些代码可能就是您正在寻找的:
@Override
public void run()
{
while (mRun)
{
Canvas c = null;
try
{
c = mSurfaceHolder.lockCanvas(null);
synchronized (mSurfaceHolder)
{
if (mMode == STATE_RUNNING)
{
updatePhysics();
}
doDraw(c);
}
} finally {
// ...
}
}
}
这是 LunarLander 示例中 run() 函数的修改版本。
主要的兴趣点是只有当 mMode == STATE_RUNNING 时才会调用 updatePhysics() 函数。简单地更改 mMode 将导致物理停止更新并有效地暂停游戏。
我认为这或多或少是@vivek 所描述的。
关于android - 在 Android 游戏中添加暂停/恢复支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5866029/