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 }