ObstacleGame/src/states/InGameState.h
2024-11-25 22:16:17 +01:00

46 lines
1008 B
C++

#ifndef INGAME_STATE_H
#define INGAME_STATE_H
#include "../entities/Opponent.h"
#include "GameState.h"
#include <vector>
#include <SDL2/SDL_image.h>
enum class Type {
HEALTH,
DAMAGE
};
struct Item {
int x;
int y;
Type type;
};
class InGameState final : public GameState {
Player player;
std::vector<Opponent> opponents;
std::vector<Item> items;
int startTime = 0;
bool showHitboxes = false;
void renderPlayer(SDL_Renderer* renderer, SDL_Texture* player, Player p) const;
public:
void init() override;
void handleEvents(SDL_Event& event) override;
void update() override;
void render(SDL_Renderer* renderer) override;
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 renderOpponent(SDL_Renderer* renderer, SDL_Texture* opponentTexture, Opponent o) const;
};
#endif