Javaエミュレーションボールエフェクト(キーボードの傍受)
11842 ワード
1 import java.awt.*;
2 import java.awt.event.*;
3
4 public class BallGame extends Frame {
5
6 Image sun = Toolkit.getDefaultToolkit().getImage("sun.jpg");
7
8 double x=200;
9 double y=200;
10 boolean left,right,up,down;
11 public void paint(Graphics g){
12 g.drawImage(sun, (int)x, (int)y, null);
13 if(left){
14 x = x-10;
15 }
16 if(right){
17 x = x+10;
18 }
19 if(up){
20 y = y-10;
21 }
22 if(down){
23 y = y+10;
24 }
25
26 }
27
28 void launchFrame(){
29 setSize(500,400);
30 setLocation(80, 80);
31 setBackground(Color.black);
32 setTitle(" ");
33 myEvent();
34 setVisible(true);
35 new PaintThread().start();
36 addKeyListener(new KeyMonitor());
37 }
38
39 public static void main(String[] args){
40 new BallGame().launchFrame();
41 }
42
43 class PaintThread extends Thread {
44 public void run(){
45 while(true){
46 repaint();
47 try {
48 Thread.sleep(40);
49 } catch (InterruptedException e) {
50 e.printStackTrace();
51 } //1 =1000 !
52 }
53 }
54 }
55
56 class KeyMonitor extends KeyAdapter {
57 public void keyPressed(KeyEvent e){
58 if(37==e.getKeyCode()){
59 left=true;
60 }
61 if(39==e.getKeyCode()){
62 right = true;
63 }
64 if(38==e.getKeyCode()){
65 up = true;
66 }
67 if(40==e.getKeyCode()){
68 down = true;
69 }
70 }
71
72 public void keyReleased(KeyEvent e){
73 if(37==e.getKeyCode()){
74 left=false;
75 }
76 if(39==e.getKeyCode()){
77 right = false;
78 }
79 if(38==e.getKeyCode()){
80 up = false;
81 }
82 if(40==e.getKeyCode()){
83 down = false;
84 }
85 }
86 }
87 private void myEvent()
88 {
89 this.addWindowListener(new WindowAdapter()//
90 {
91 public void windowClosing(WindowEvent e)
92 {
93 System.exit(0);
94 }
95 });
96 }
97 }