1 package com.neuedu.test;
2
3 import java.awt.Graphics;
4 import java.awt.Image;
5
6 import com.neuedu.constant.Constant;
7 import com.neuedu.util.GameUtill;
8 import com.neuedu.util.MyFrame;
9
10 public class Round extends MyFrame {
11
1 package com.neuedu.util;
2
3 import java.awt.Color;
4 import java.awt.Component;
5 import java.awt.Frame;
6 import java.awt.Graphics;
7 import java.awt.Image;
8 import java.awt.event.WindowAdapter;
9 import java.awt.event.WindowEvent;
10
11 import com.neuedu.constant.Constant;
12
13 public abstract class MyFrame extends Frame {
14 public void loadFrame () {
15
16 setSize(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
17 setLocationRelativeTo(null);
18 setTitle("窗口");
19 setResizable(false);
20 setVisible(true);
21 addWindowListener(new WindowAdapter() {
22
23 @Override
24 public void windowClosing(WindowEvent e) {
25 // TODO Auto-generated method stub
26 System.exit(0);
27 }
28
29 });
30 new MyThread().start();
31 }
32
33 class MyThread extends Thread {
34
35 @Override
36 public void run() {
37 while (true) {
38 repaint();
39 try {
40 Thread.sleep(60);
41 } catch (InterruptedException e) {
42 // TODO Auto-generated catch block
43 e.printStackTrace();
44 }
45 }
46 }
47
48 }
49 Image offScreenImage = null ;//创建双缓冲,因为repaint太快
50 @Override
51 public void update(Graphics g) {
52 if(offScreenImage == null) {
53 offScreenImage = this.createImage(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
54 }
55 Graphics gOffScreen = offScreenImage.getGraphics();
56 Color c = gOffScreen.getColor();
57 gOffScreen.setColor(Color.WHITE);
58 gOffScreen.fillRect(0,0,Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
59 gOffScreen.setColor(c);
60 paint(gOffScreen);
61 g.drawImage(offScreenImage, 0, 0, null);
62 }
63 }
12 /**
13 * @param args
14 */
15 Image snow = GameUtill.getImage("com/neuedu/img/star.png");
16 int y = 250;
17 int x = 700;19 double degree = Math.PI/6;
20 double speed= 0.1;
21 @Override
22 public void paint(Graphics g) {
23
24 // TODO Auto-generated method stub
25 g.drawImage(snow,x,y,50,50,null);
26 x += 25* Math.cos(degree);
27 y += 25* Math.sin(degree);
28 degree += speed;
29
30 }
31 public static void main(String[] args) {
32 // TODO Auto-generated method stub
33 new Round().loadFrame();
34 }
35
36 }
1 package com.neuedu.util;
2
3 import java.awt.Image;
4 import java.awt.image.BufferedImage;
5 import java.io.IOException;
6 import java.net.URL;
7
8 import javax.imageio.ImageIO;
9
10 public class GameUtill {
11 public static Image getImage (String imgPath) {
12 URL u = GameUtill.class.getClassLoader().getResource(imgPath);
13 BufferedImage img = null;
14 try {
15 img = ImageIO.read(u);
16 } catch (IOException e) {
17 // TODO Auto-generated catch block
18 e.printStackTrace();
19 }
20 return img;
21
22 }
23 }