我正在制作动态壁纸。而且我在尝试多线程我的精灵帧更改时遇到问题。我有一个更新方法和一个绘制方法
public void update() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
currentFrame = ++currentFrame % 2;
}
public void Draw(Canvas c, int sx, int sy){
update();
x = sx;
y = sy;
int srcX = currentFrame * width;
int srcY = 0;
Rect src = new Rect(srcX,srcY,srcX+width,srcY+height);
Rect dst = new Rect(x,y,x+width,y+height);
c.drawBitmap(b, src, dst, null);
我试着上课
public class SecondThread extends Thread{
public void run(){
seaweed.update();
}
}
这会在自己的线程中运行更新,因此它们可以在不同的时间长度内休眠。一个人睡 50 人,另一个人睡 500 人。如果将 SecondThread 类放在 spirte 类中,它只会设置在第一帧上,如果我放入我的壁纸引擎类并尝试启动它,它会像一个步骤一样然后崩溃。我在这里做错了什么?