61 lines
1.1 KiB
C++
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 |