-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnemigos.cpp
More file actions
85 lines (69 loc) · 2.31 KB
/
Enemigos.cpp
File metadata and controls
85 lines (69 loc) · 2.31 KB
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
/**
Versus is a PC game programmed in C++ using the Allegro 5.0.11 library.
Copyright (C) 2015 Nexer Rodríguez (rnexer) and Ricardo A. Interiano (Raim)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
For contact information read the README.md file.
**/
#include "Enemigos.h"
Enemigos::Enemigos()
{
tipoObjeto = "Enemigo";
detalles->x = rand() % 450;
detalles->y = 10;
firingRate = 57;
variablesRandomEstado = 100000;
moveBy = 5;
laserDmg = 1;
randomAlternative1 = 175;
randomAlternative2 = 125;
}
int Enemigos::getTime(){
return -1;
}
void Enemigos::act(ALLEGRO_EVENT* ev){
detalles->y += velocity;
int randomEstado = rand() % variablesRandomEstado;
if(randomEstado % firingRate == 0){//Si es divisible entre firingRate, entonces agregar el disparo
al_stop_sample(&idsonido);
al_play_sample(sonido, 1.0, 0.0,1.0,ALLEGRO_PLAYMODE_ONCE,&idsonido);
obstaculos->push_back(new Disparos(laserDmg, detalles->x + 15, detalles->y + 40, 0));
}
randomizarMovimiento();
frame++;
if (detalles->y > 600 || vidas < 0)
muerto = true;
}
/**
Determina el patrón de movimiento del enemigo
**/
void Enemigos::randomizarMovimiento(){
int randomNumber = rand() % 10000;
if (randomNumber % randomAlternative1 == 0){
alternar = true;
}else if (randomNumber % randomAlternative2 == 0){
alternar = false;
}
determinarRandomMovimiento();
}
/**
Especifica el patrón de movimiento del personaje
**/
void Enemigos::determinarRandomMovimiento(){
if(alternar & detalles->x > 0){
detalles->x -= moveBy;
}else if (!alternar & detalles->x < 450){
detalles->x += moveBy;
}
}
Enemigos::~Enemigos()
{
}