Java Runnable中的run()方法不起作用
我正在尝试建立一个游戏,我在一个教程的帮助下做这件事。我的问题是,下面显示的run()方法不起作用。我尝试了本教程的示例代码,它与run()方法完全相同,并且可以正常工作。 在我的代码中,从未调用run(),我不知道为什么Java Runnable中的run()方法不起作用,java,android,runnable,Java,Android,Runnable,我正在尝试建立一个游戏,我在一个教程的帮助下做这件事。我的问题是,下面显示的run()方法不起作用。我尝试了本教程的示例代码,它与run()方法完全相同,并且可以正常工作。 在我的代码中,从未调用run(),我不知道为什么 package thisproject; public class StartingClass extends Applet implements Runnable, KeyListener, MouseListener { private Buil
package thisproject;
public class StartingClass extends Applet implements Runnable, KeyListener,
MouseListener {
private Builder builder;
private Image image,currentSprite, character,characterWalk, background;
private Graphics second;
private URL base;
private static Background bg1;
@Override
public void init() {
setSize(800, 400);
setBackground(Color.BLACK);
setFocusable(true);
addKeyListener(this);
Frame frame = (Frame) this.getParent().getParent();
frame.setTitle("Castle Fight");
try {
base = getDocumentBase();
} catch (Exception e) {
// TODO: handle exception
}
// Image Setups
background = getImage(base, "data/background2.png");
character = getImage(base, "data/builder.png");
currentSprite = character;
}
@Override
public void start() {
bg1 = new Background(0, 0);
builder = new Builder();
Thread thread = new Thread();
thread.start();
}
@Override
public void stop() {
// TODO Auto-generated method stub
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void run() {
while (true) {
System.out.println("this thing");
builder.update();
bg1.update();
repaint();
try {
Thread.sleep(17);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
public void update(Graphics g) {
if (image == null) {
image = createImage(this.getWidth(), this.getHeight());
second = image.getGraphics();
}
second.setColor(getBackground());
second.fillRect(0, 0, getWidth(), getHeight());
second.setColor(getForeground());
paint(second);
g.drawImage(image, 0, 0, this);
}
@Override
public void paint(Graphics g) {
g.drawImage(background, bg1.getBgX(), bg1.getBgY(), this);
g.drawImage(currentSprite, builder.getCenterX() - 61, builder.getCenterY() - 63, this);
}
}
}
请记住,我取出了导入和关键事件,因此代码没有占用太多空间,但我确实有所有必要的导入。
希望有人能给我一些提示。你从来没有提供
可运行的。改变
Thread thread = new Thread();
thread.start();
到
您从不提供可运行的
。改变
Thread thread = new Thread();
thread.start();
到