mirror of
https://github.com/Steffo99/iiiiil-gioco.git
synced 2024-11-21 23:44:21 +00:00
Reso il numero dei nemici variabile.
This commit is contained in:
parent
0300e291be
commit
c25b485457
1 changed files with 18 additions and 9 deletions
27
main.cpp
27
main.cpp
|
@ -10,7 +10,7 @@ using namespace std;
|
||||||
#define Y_MAX 23
|
#define Y_MAX 23
|
||||||
#define ROOMS 8
|
#define ROOMS 8
|
||||||
#define ROOM_SIZE 7
|
#define ROOM_SIZE 7
|
||||||
#define ENEMIES_IN_LEVEL 5
|
#define MAX_ENEMIES 50
|
||||||
#define HP_MAX 50
|
#define HP_MAX 50
|
||||||
#define STARTING_ATK 5
|
#define STARTING_ATK 5
|
||||||
#define STARTING_DEF 5
|
#define STARTING_DEF 5
|
||||||
|
@ -34,7 +34,7 @@ class Enemy;
|
||||||
|
|
||||||
//Variabili globali
|
//Variabili globali
|
||||||
//Lista di tutti i nemici nel livello
|
//Lista di tutti i nemici nel livello
|
||||||
Enemy* list[ENEMIES_IN_LEVEL];
|
Enemy* list[MAX_ENEMIES];
|
||||||
//Numero del piano raggiunto dal giocatore
|
//Numero del piano raggiunto dal giocatore
|
||||||
int depth = 1;
|
int depth = 1;
|
||||||
//Mappa del gioco
|
//Mappa del gioco
|
||||||
|
@ -570,7 +570,7 @@ void corridor(int start_x, int start_y, int end_x, int end_y, bool verticale)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Genera il livello
|
//Genera il livello
|
||||||
void generate()
|
void generate(int enemies_to_place)
|
||||||
{
|
{
|
||||||
int corridor_x;
|
int corridor_x;
|
||||||
int corridor_y;
|
int corridor_y;
|
||||||
|
@ -600,7 +600,7 @@ void generate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Posizionamento nemici
|
//Posizionamento nemici
|
||||||
for(int e=0; e<ENEMIES_IN_LEVEL; e++)
|
for(int e=0; e<enemies_to_place; e++)
|
||||||
{
|
{
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
|
@ -656,9 +656,9 @@ void generate()
|
||||||
}
|
}
|
||||||
|
|
||||||
//Processa il resto di un turno, dopo il movimento del giocatore.
|
//Processa il resto di un turno, dopo il movimento del giocatore.
|
||||||
void tick()
|
void tick(int enemies_to_tick)
|
||||||
{
|
{
|
||||||
for(int e=0; e<ENEMIES_IN_LEVEL; e++)
|
for(int e=0; e<enemies_to_tick; e++)
|
||||||
{
|
{
|
||||||
list[e]->move();
|
list[e]->move();
|
||||||
}
|
}
|
||||||
|
@ -667,7 +667,7 @@ void tick()
|
||||||
//Trova il puntatore al nemico in una certa posizione
|
//Trova il puntatore al nemico in una certa posizione
|
||||||
Enemy* find(int x, int y)
|
Enemy* find(int x, int y)
|
||||||
{
|
{
|
||||||
for(int e=0; e<ENEMIES_IN_LEVEL; e++)
|
for(int e=0; e<MAX_ENEMIES; e++)
|
||||||
{
|
{
|
||||||
//Se c'è un nemico in quella posizione ED E' VIVO
|
//Se c'è un nemico in quella posizione ED E' VIVO
|
||||||
if(list[e]->x == x && list[e]->y == y && list[e]->alive)
|
if(list[e]->x == x && list[e]->y == y && list[e]->alive)
|
||||||
|
@ -687,8 +687,17 @@ int main()
|
||||||
//Ciclo del gioco
|
//Ciclo del gioco
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
|
int enemies_in_level;
|
||||||
|
if(depth < MAX_ENEMIES)
|
||||||
|
{
|
||||||
|
enemies_in_level = depth;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
enemies_in_level = MAX_ENEMIES;
|
||||||
|
}
|
||||||
init();
|
init();
|
||||||
generate();
|
generate(enemies_in_level);
|
||||||
draw();
|
draw();
|
||||||
//Ciclo di un livello
|
//Ciclo di un livello
|
||||||
while(true)
|
while(true)
|
||||||
|
@ -698,7 +707,7 @@ int main()
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
tick();
|
tick(enemies_in_level);
|
||||||
draw();
|
draw();
|
||||||
}
|
}
|
||||||
depth++;
|
depth++;
|
||||||
|
|
Loading…
Reference in a new issue