1     /**
2      * Curso Básico de desarrollo de Juegos en Java - Invaders
3      * 
4      * (c) 2004 Planetalia S.L. - Todos los derechos reservados. Prohibida su reproducción
5      * 
6      * http://www.planetalia.com
7      * 
8      */
9     package version25;
10    
11    public class Monster extends Actor {
12      protected int vx;
13      protected static final double FIRING_FREQUENCY = 0.01;
14      
15      public Monster(Stage stage) {
16        super(stage);
17        setSpriteNames( new String[] {"bicho0.gif","bicho1.gif"});
18        setFrameSpeed(35);
19      }
20      
21      public void act() {
22        super.act();
23        x+=vx;
24        if (x < 0 || x > Stage.WIDTH)
25          vx = -vx;
26        if (Math.random()<FIRING_FREQUENCY)
27          fire();
28      }
29    
30      public int getVx() { return vx; }
31      public void setVx(int i) {vx = i; }
32      
33      public void collision(Actor a) {
34        if (a instanceof Bullet || a instanceof Bomb) {
35          remove();
36          stage.getPlayer().addScore(20);
37        }
38      }
39      
40      public void fire() {
41        Laser m = new Laser(stage);
42        m.setX(x+getWidth()/2);
43        m.setY(y + getHeight());
44        stage.addActor(m);
45      }
46    }
47