-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDisparo.java
119 lines (108 loc) · 2.91 KB
/
Disparo.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import greenfoot.*;
/**
* @author Jorge Mendoza Garcia
* @author Jaime Eduardo Luna Mireles
* @version 1.5
*
* Clase que Contiene los metodos y atributos del disparo del jugador
*/
public class Disparo extends Actor
{
int vBala = 5; //Velocidad con la que se mueve la bala
int dirBala; //Sele guarda la direccion que le manda la clase jugador
/**
* Constructor de Disparo, agrega la direccion de la bala
*/
public Disparo(int direcc)
{
dirBala = direcc;
}
/**
* Constructor que guarda la velocidad de la bala del
*/
public Disparo(int direcc, int veloc)
{
dirBala = direcc;
vBala = veloc;
}
/**
* Metodo que mandar llamar los metodos de la clase Disparo
*/
public void act()
{
mueveBala();
if (getWorld() ==null) return;
tocaEneD();
if (getWorld() ==null) return;
AtWorldEdge();
if (getWorld() ==null) return;
atWorldEdge();
if (getWorld() ==null) return;
tocaEneI();
}
/**
* Metodo que mueve la bala a la derecha o izquieda
*/
public void mueveBala()
{
switch(dirBala)
{
case 1: setLocation(getX()+vBala, getY());
break;
case 2: setLocation(getX()-vBala, getY());
break;
}
}
/**
* Metodo que remueve los disparos del jugador y de los enemigos, cuando tocan el borde
* del escenario
*/
public void AtWorldEdge()
{
if(atWorldEdge())
{
getWorld().removeObject(this);
}
}
/**
* Metodo que regresa true o false
*/
public boolean atWorldEdge()
{
if(getX() < 10 || getX() > getWorld().getWidth() -5)
return true;
if(getY() < 10 || getY() > getWorld().getHeight() -5)
return true;
else
return false;
}
/**
* Metodo que comprueba si toca al enemigo de la derecha
*/
public void tocaEneD()
{
EnemigoD zombie = (EnemigoD)getOneIntersectingObject(EnemigoD.class);
if (zombie != null)
{
//Nivel1 espacio = (Nivel1)getWorld();
getWorld().removeObject(zombie);
getWorld().removeObject(this);
//System.out.println("Shot");
//System.out.println(zombie.getHealth());
}
}
/**
* Metodo que comprueba si toca al enemigo de la izquierda
*/
public void tocaEneI()
{
EnemigoI sprinter = (EnemigoI)getOneIntersectingObject(EnemigoI.class);
if (sprinter != null)
{
//Nivel1 espacio = (Nivel1)getWorld();
getWorld().removeObject(sprinter);
getWorld().removeObject(this);
//sprinter.setHealth(-1);
}
}
}