added viewport support

This commit is contained in:
Vincent-FK
2021-06-08 18:39:39 +02:00
parent dfc5c53d43
commit 71c8d22457
6 changed files with 125 additions and 47 deletions

View File

@@ -23,7 +23,13 @@
#define MONSTER_SPEED 7 // the less, the faster
#define ANIMATION_SPEED 2
// General sprites
// General sprites and colors
#define GAME_BG_COLOR_R 153
#define GAME_BG_COLOR_G 204
#define GAME_BG_COLOR_B 204
/*#define GAME_BG_COLOR_R 255
#define GAME_BG_COLOR_G 255
#define GAME_BG_COLOR_B 255*/
#define IMG_MAP_WALL "sprite/wall.png"
#define IMG_MAP_BOX "sprite/box.png"
#define IMG_MAP_GOAL "sprite/objectif.png"

View File

@@ -33,6 +33,8 @@ struct s_game {
t_bomb list_bombs;
t_flamme list_flammes;
t_monster list_monsters;
bool viewport_mode;
bool must_clear_screen;
};
typedef struct s_game * t_game;

View File

@@ -15,49 +15,59 @@ enum e_player {
PLAYER_STD, PLAYER_MONSTER
};
struct s_player {
int x, y, portee_bomb, win;
SDL_Surface * directed_img[4];
enum e_way current_way;
int lives;
int nb_bomb;
int nb_bomb_max;//cette variable est utile pour les bonus. Elle sert à ce que, par exemple, si le joueur a posé toutes ses bombes (disons 2) et qu'avant qu'elles explosent le joueur prend un bonus decrease_nb_bombs, il ne sera autorisé qu'à poser une seule bombe après l'explosion des deux sur la map.
int dead;
};
typedef struct s_player * t_player;
// Creates a new player with a given number of available bombs
extern t_player player_init(int nb_bomb, int portee_bomb, int lives, int no_joueur);
extern void player_free(t_player player);
t_player player_init(int nb_bomb, int portee_bomb, int lives, int no_joueur);
void player_free(t_player player);
// Returns the current position of the player
extern int player_get_x(t_player player);
extern int player_get_y(t_player player);
int player_get_x(t_player player);
int player_get_y(t_player player);
// Confirm if the player has won the game
extern int player_win(t_player player);
int player_win(t_player player);
// Return the caracteristics of the player
extern int player_portee_bomb(t_player player);
int player_portee_bomb(t_player player);
//manage the lives of the player
extern int player_get_lives(t_player player);
extern void player_increase_lives(t_player player);
extern void player_decrease_lives(t_player player);
extern void player_die(t_player player);
extern int player_get_dead(t_player player);
int player_get_lives(t_player player);
void player_increase_lives(t_player player);
void player_decrease_lives(t_player player);
void player_die(t_player player);
int player_get_dead(t_player player);
// Set the direction of the next move of the player
extern void player_set_current_way(t_player player, enum e_way way);
void player_set_current_way(t_player player, enum e_way way);
// Load the player position from the map
extern int player_from_map(t_player player, t_map map);
extern void player2_from_map(t_player player, t_map map);
int player_from_map(t_player player, t_map map);
void player2_from_map(t_player player, t_map map);
// Move the player according to the current direction
extern int player_move(t_player player, t_map map);
int player_move(t_player player, t_map map);
//Manage the number of bombs available
extern int player_get_nb_bomb(t_player player);
extern int player_get_nb_bomb_max(t_player player);
extern void player_set_nb_bomb(t_player player, int bomb_number);
extern void player_increase_nb_bomb(t_player player);
extern void player_decrease_nb_bomb(t_player player);
extern void player_increase_nb_bomb_max(t_player player);
extern void player_decrease_nb_bomb_max(t_player player);
int player_get_nb_bomb(t_player player);
int player_get_nb_bomb_max(t_player player);
void player_set_nb_bomb(t_player player, int bomb_number);
void player_increase_nb_bomb(t_player player);
void player_decrease_nb_bomb(t_player player);
void player_increase_nb_bomb_max(t_player player);
void player_decrease_nb_bomb_max(t_player player);
// Display the player on the screen
extern void player_display(t_player player, SDL_Surface *screen);
void player_display(t_player player, SDL_Surface *screen);
#endif /* PLAYER_H_ */