ObstacleGame/Game.h

61 lines
1.1 KiB
C++

#include <vector>
#include <time.h>
#ifndef CPP_LEARNING_GAME_H
#define CPP_LEARNING_GAME_H
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
class Player {
public:
int x = 40;
int y = 40;
int unsigned health = 3;
void moveX(int dx);
void moveY(int dy);
};
enum class Type {
HEALTH,
DAMAGE
};
struct Item {
int x;
int y;
Type type;
};
class Opponent : public Player {
public:
int targetX = 0;
int targetY = 0;
void move(int multiplier);
};
class Game {
Player player;
std::vector<Opponent> opponents;
std::vector<Item> items;
bool showHitboxes = false;
void renderPlayer(SDL_Renderer* renderer, SDL_Texture* player, Player p) const;
public:
void spawnItem(Type type);
void createOpponent();
void checkCollision();
void renderHUD(SDL_Renderer* renderer, SDL_Texture* heart) const;
void renderItem(SDL_Renderer* renderer, Item i) const;
void render(SDL_Renderer* renderer, SDL_Texture* bg);
void run();
void renderOpponent(SDL_Renderer* renderer, SDL_Texture* opponentTexture, Opponent o) const;
};
#endif