我正在尝试制作游戏。我使用了很多方法,但结果不好。
for (Sprite sprite : sprites) {
sprite.onDraw(canvas);
}
我使用此代码创建我的精灵图像。我想要的是每8秒一次又一次地执行相同的代码。我用过:
for (int me = 0; me < 10; me++){
for (Sprite sprite : sprites) {
sprite.onDraw(canvas);
}
Thread.sleep(8000);
}
我认为这会使for循环运行缓慢。但是发生的事情是我的精灵也开始变得很慢,因为它每2秒改变它的位置......因为我睡了2000毫秒:(
提前谢谢你们。
答案 0 :(得分:0)
你想要做的是快速精灵绘制,但每秒的常量帧速率。 :) 解决问题使用你的操作系统实时时钟等待确切的时间!
类似的东西:
while(1)
{
t1 = now();
draw_screen();
game_logic();
get_user_input();
t2 = now();
sleep(); // here wait for ((1/fps)-(t2-t1)) sec.
}
这将迫使您的游戏以给定的fps速率运行。显然,这种方法并不能涵盖绘图程序比实际1 / fps时间窗口花费更长时间的情况;你需要实现某种帧丢弃技术