1
9 package version17;
10
11 import java.awt.event.KeyEvent;
12
13 public class Player extends Actor {
14 protected static final int PLAYER_SPEED = 4;
15 protected int vx;
16 protected int vy;
17 private boolean up,down,left,right;
18
19
20 public Player(Stage stage) {
21 super(stage);
22 setSpriteNames( new String[] {"nave.gif"});
23 }
24
25 public void act() {
26 super.act();
27 x+=vx;
28 y+=vy;
29 if (x < 0 || x > Stage.WIDTH)
30 vx = -vx;
31 if (y < 0 || y > Stage.HEIGHT)
32 vy = -vy;
33 }
34
35 public int getVx() { return vx; }
36 public void setVx(int i) {vx = i; }
37 public int getVy() { return vy; }
38 public void setVy(int i) {vy = i; }
39
40
41 protected void updateSpeed() {
42 vx=0;vy=0;
43 if (down) vy = PLAYER_SPEED;
44 if (up) vy = -PLAYER_SPEED;
45 if (left) vx = -PLAYER_SPEED;
46 if (right) vx = PLAYER_SPEED;
47 }
48
49 public void keyReleased(KeyEvent e) {
50 switch (e.getKeyCode()) {
51 case KeyEvent.VK_DOWN : down = false;break;
52 case KeyEvent.VK_UP : up = false; break;
53 case KeyEvent.VK_LEFT : left = false; break;
54 case KeyEvent.VK_RIGHT : right = false;break;
55 }
56 updateSpeed();
57 }
58
59 public void keyPressed(KeyEvent e) {
60 switch (e.getKeyCode()) {
61 case KeyEvent.VK_UP : up = true; break;
62 case KeyEvent.VK_LEFT : left = true; break;
63 case KeyEvent.VK_RIGHT : right = true; break;
64 case KeyEvent.VK_DOWN : down = true;break;
65 }
66 updateSpeed();
67 }
68
69 }
70