Android没有主循环,但我的arkanoid游戏测试中有一个球,它需要每隔100毫秒更换一次位置。
我尝试使用MainThread库,但它仍无效。
如果我有任何可能的方法来覆盖函数onRunning()
并让它检查屏幕是否被触摸并移动球会很棒。
但考虑到我无法更改onRunning()
功能,我该怎么做才能添加一个将我的球移动到主游戏循环的功能?
答案 0 :(得分:1)
您可以创建另一个与Main / Gui线程
异步运行的线程final boolean shouldRun = true;
Thread t = new Thread(){
public void run(){
while (shouldRun){
//do what ever you need
try{
Thread.sleep(100); //sleep for 100ms
} catch (Exception e) {
}
}
}
};
shouldRun = true;
t.start();
当你完成时
shouldRun = false;
try {
t.join();
} catch (Exception e) { }
请注意,这不是最优雅的解决方案,您应该创建一个类,它将在一个线程上处理游戏的逻辑,并在另一个线程上处理绘图。
此外,只要您的活动暂停,您就应该暂停逻辑游戏以及绘图。
答案 1 :(得分:0)
您只需按照自己的意愿创建一个重新绘制。
以下是一个示例:http://jmsliu.com/199/android-canvas-example.html
对于基本动画,您不需要使用任何库。但是,如果你想开发游戏,你应该考虑使用游戏引擎。
答案 2 :(得分:0)
据我所知,android没有主循环
谁说的?粗略的例子:
public class MainLoop extends Thread {
boolean isRunning;
public void terminate() {
isRunning=false;
}
public void run() {
isRunning=true;
while (isRunning) {
//move ball
try { sleep(100);
...
您还需要实施deltatime测量并纠正睡眠时间值
答案 3 :(得分:0)