-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJugador.java
205 lines (180 loc) · 5.39 KB
/
Jugador.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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* @author Jorge Mendoza Garcia
* @author Jaime Eduardo Luna Mireles
* @version 1.5
*
* Clase que contiene toda la informacion de jugador
*/
public class Jugador extends Actor
{
private int vBaja = 0; //velocidad con la que cae el jugador
private int vAcel = 1; //velocidad con la que da el salto el jugador
private int longSalto = 8; //longitud de salto del jugador
private int speed = 6;
int direccionBala=1; //guarda la direccion en que sale la bala 1:derecha - 2:izquierda
boolean siBala=false;
public static int score=0; //Atributo para los puntos de jugador
public static int score1=score; //Atributo para los puntos de jugador
private GreenfootImage redright2 = new GreenfootImage("redright2.png"); //Atributo que crea la imagen del jugador
private GreenfootImage redleft2 = new GreenfootImage("redleft2.png"); //Atributo que crea la imagen del jugador
private GreenfootSound salta = new GreenfootSound("atrapa.mp3"); //Atributo que genera el sonido cuando el jugador atrapa objetos
/**
* Metodo que utiliza todos las acciones del jugador
*/
public void act()
{
getWorld().showText("Score : ", 50, 20);
if(Greenfoot.isKeyDown("right")){
setImage(redright2);
move(7);
direccionBala = 1;
}
if(Greenfoot.isKeyDown("left")){
setImage(redleft2);
move(-7);
direccionBala = 2;
}
if(Greenfoot.isKeyDown("up"))
{
salta();
}
checaPuntos();
checaCaida();
setBala(direccionBala);
}
/**
* Metodo que checa la fruta que toco el piso
*/
public boolean checaItem(Class cls)
{
Actor actor = getOneObjectAtOffset(0, -10, cls);
return actor != null;
}
/**
*
*/
public void hapus(Class cls)
{
Actor actor = getOneObjectAtOffset(0, -10, cls);
getWorld().removeObject(actor);
}
/**
* Metodo que checa el objeto que el jugador toco, le da puntos o le resta, dependiendo del objeto
*/
public void checaPuntos(){
if(checaItem(Manzana.class))
{
hapus(Manzana.class);
score=score+10;
Greenfoot.playSound("masuk.mp3");
getWorld().showText(""+score, 120, 20);
}
if(checaItem(Platano.class))
{
hapus(Platano.class);
score=score+30;
Greenfoot.playSound("masuk.mp3");
getWorld().showText(""+score, 120, 20);
}
if(checaItem(Calavera.class))
{
hapus(Calavera.class);
score=score-50;
Greenfoot.playSound("masuk.mp3");
getWorld().showText(""+score, 120, 20);
}
if(checaItem(Cascara.class))
{
hapus(Cascara.class);
score=score-100;
Greenfoot.playSound("masuk.mp3");
getWorld().showText(""+score, 120, 20);
}
if(checaItem(Cereza.class))
{
hapus(Cereza.class);
score=score+60;
Greenfoot.playSound("masuk.mp3");
getWorld().showText(""+score, 120, 20);
}
}
/**
* Metodo que comprueba la tecla que presione el jugador
*/
public void checaTecla()
{
if(Greenfoot.isKeyDown("right"))
{
setImage(redright2);
move(speed);
direccionBala = 1;
}
if(Greenfoot.isKeyDown("left"))
{
setImage(redleft2);
move(-speed);
direccionBala = 2;
}
if(Greenfoot.isKeyDown("up"))
{
salta();
}
setBala(direccionBala);
}
/**
* Metodo que valida cuando el jugador presiona la tecla "espacio", para disparar.
*/
public void setBala(int direccion)
{
if( siBala && Greenfoot.isKeyDown("space"))
{
Disparo bala1 = new Disparo(direccion);
getWorld().addObject(bala1,getX(),getY());
Greenfoot.playSound("dispara.mp3");
siBala = false;
}
if(!siBala && ! Greenfoot.isKeyDown("space"))
{
siBala = true;
}
}
/**
* Metodo que hace bajar las frutas
*/
public void caer()
{
setLocation ( getX(), getY() + vBaja);
vBaja = vBaja + vAcel;
}
/**
* Metodo que devuelve true o false cuando un objeto toca el piso.
*/
public boolean enSuelo()
{
Actor piso = getOneObjectAtOffset(0, 25, Ground.class);
return piso != null;
}
/**
* Funcion que checa si el jugador esta en el suelo
*/
public void checaCaida()
{
if(enSuelo())
{
vBaja = 0;
}
else
{
caer();
}
}
/**
* Metodo que hace bajar al jugador, cuando salta.
*/
public void salta()
{
vBaja = -longSalto;
caer();
}
}