package com.bjsxt;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import static com.bjsxt.GameUtil.*;
public class MyGameFrame extends Frame {
Image bg = GameUtil.getImage("images/bg.jpg");
Image plane = GameUtil.getImage("images/plane.png");
int x,y; //飞机的坐标
//初始化窗口
public void launchFrame(){
this.setTitle("飞机大战");
this.setVisible(true); //窗口默认不可见。需要让他看见(true)
this.setSize(500,500);
this.setLocation(300,300);
//增加窗口关闭的动作
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//启动窗口,绘制线程
new PaintThread().start();
}
@Override
public void paint(Graphics g) {
System.out.println("窗口绘制中。。");
g.drawImage(bg,0,0,FRAME_WIDTH,FRAME_HEIGHT,null);
g.drawImage(plane,x,y,30,30,null);
x--;
}
//重画线程
class PaintThread extends Thread {
@Override
public void run() {
while (true){
repaint();
try {
Thread.sleep(40); //1s = 1000ms
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
MyGameFrame frame = new MyGameFrame();
frame.launchFrame();
}
private Image offScreenImage = null;
public void update(Graphics g) {
if(offScreenImage == null)
offScreenImage = this.createImage(FRAME_WIDTH,FRAME_HEIGHT);//这是游戏窗口的宽度和高度
Graphics gOff = offScreenImage.getGraphics();
paint(gOff);
g.drawImage(offScreenImage, 0, 0, null);
}
}
老师,这是我的代码,和视频的一样,为啥run的时候飞机找不到了