YourCityInvadedByAliens
Documentation for code of the game
render.h
Go to the documentation of this file.
1 #pragma once
2 #include "render_window.h"
3 
4 #include "game_state.h"
6 
7 #include <vector>
8 #include <string>
9 #include <iostream>
10 
11 class RenderTriangle : public RenderObject {
12 
13  public:
15  const CoordXY &p1,
16  const CoordXY &p2,
17  const CoordXY &p3,
18  int nPositionZ = 0
19  );
20  virtual void modify(const GameState& state, IRenderWindow* pRenderWindow) override;
21  virtual bool canDraw(const GameState& state) override;
22  virtual void draw(SDL_Renderer* renderer) override;
23 
24  private:
29 };
30 
32 
33  public:
35  const CoordXY &p0,
36  SDL_Texture* tex,
37  int nTextureWidth,
38  int nTextureHeight,
39  int nPositionZ = 0
40  );
41  virtual void modify(const GameState& state, IRenderWindow* pRenderWindow) override;
42  virtual bool canDraw(const GameState& state) override;
43  virtual void draw(SDL_Renderer* renderer) override;
44 
45  private:
50 
51  SDL_Rect currentFrame;
52  SDL_Texture* m_pTexture;
53 };
54 
56 
57  public:
59  const CoordXY &p0,
60  const std::string &sText,
61  int nPositionZ = 0
62  );
63  virtual void modify(const GameState& state, IRenderWindow* pRenderWindow) override;
64  virtual bool canDraw(const GameState& state) override;
65  virtual void draw(SDL_Renderer* renderer) override;
66  void updateText(const std::string &sNewText);
67 
68  private:
70  std::string m_sText;
71  std::string m_sUpdateText;
72  TTF_Font* m_pFont;
73  SDL_Color m_color;
74 
75  SDL_Rect currentFrame;
76 };
77 
78 class RenderBuilding2 : public RenderObject {
79 
80  public:
81  RenderBuilding2(GameBuilding *pBuilding, SDL_Texture* pTexture);
82  virtual void modify(const GameState& state, IRenderWindow* pRenderWindow) override;
83  virtual bool canDraw(const GameState& state) override;
84  virtual void draw(SDL_Renderer* renderer) override;
87  private:
90 
92  std::vector<RenderLine *> m_vBorderLines;
93  std::vector<CoordXY> m_vFillPointsAbsolute;
94  std::vector<CoordXY> m_vFillPoints;
95  std::vector<RenderLine *> m_vLines;
96  SDL_Rect m_currentFrame;
97  SDL_Texture* m_pTexture;
98 
99  bool containsPoint(const std::vector<CoordXY> &vPoints, const CoordXY &p);
100 };
101 
102 class RenderMouse : public RenderObject {
103 
104  public:
105  RenderMouse(
106  const CoordXY &p1,
107  SDL_Texture* pTextureCursorTarget,
108  int nPositionZ = 0
109  );
110  virtual void modify(const GameState& state, IRenderWindow* pRenderWindow) override;
111  virtual bool canDraw(const GameState& state) override;
112  virtual void draw(SDL_Renderer* renderer) override;
113  void updateCoord(const CoordXY &p0);
114 
115  private:
118 
120  SDL_Rect m_currentFrame;
121 };
RenderBuilding2::m_vFillPointsAbsolute
std::vector< CoordXY > m_vFillPointsAbsolute
Definition: render.h:93
RenderMouse
Definition: render.h:102
RenderMouse::m_pTextureCursorTarget
SDL_Texture * m_pTextureCursorTarget
Definition: render.h:119
RenderTriangle::m_line2
RenderLine m_line2
Definition: render.h:26
RenderAbsoluteTextBlock::m_sUpdateText
std::string m_sUpdateText
Definition: render.h:71
RenderMouse::m_p1
CoordXY m_p1
Definition: render.h:117
RenderMouse::m_nCursorType
int m_nCursorType
Definition: render.h:116
RenderMouse::draw
virtual void draw(SDL_Renderer *renderer) override
Definition: render.cpp:338
RenderAbsoluteTextBlock::m_pFont
TTF_Font * m_pFont
Definition: render.h:72
RenderTriangle::RenderTriangle
RenderTriangle(const CoordXY &p1, const CoordXY &p2, const CoordXY &p3, int nPositionZ=0)
Definition: render.cpp:9
RenderTriangle::m_line3
RenderLine m_line3
Definition: render.h:27
RenderMouse::m_currentFrame
SDL_Rect m_currentFrame
Definition: render.h:120
RenderRectTexture
Definition: render.h:31
RenderBuilding2::canDraw
virtual bool canDraw(const GameState &state) override
Definition: render.cpp:256
RenderColor
Definition: render_base.h:12
RenderRectTexture::m_coordPosEnd
CoordXY m_coordPosEnd
Definition: render.h:47
RenderMouse::modify
virtual void modify(const GameState &state, IRenderWindow *pRenderWindow) override
Definition: render.cpp:329
GameBuilding
Definition: game_building.h:7
RenderBuilding2::getMinPoint
CoordXY getMinPoint()
Definition: render.cpp:284
RenderAbsoluteTextBlock
Definition: render.h:55
render_line.h
RenderBuilding2::RenderBuilding2
RenderBuilding2(GameBuilding *pBuilding, SDL_Texture *pTexture)
Definition: render.cpp:152
RenderTriangle::m_line1
RenderLine m_line1
Definition: render.h:25
RenderAbsoluteTextBlock::draw
virtual void draw(SDL_Renderer *renderer) override
Definition: render.cpp:115
RenderRectTexture::m_pTexture
SDL_Texture * m_pTexture
Definition: render.h:52
RenderMouse::updateCoord
void updateCoord(const CoordXY &p0)
Definition: render.cpp:347
render_window.h
RenderBuilding2::draw
virtual void draw(SDL_Renderer *renderer) override
Definition: render.cpp:263
RenderLine
Definition: render_line.h:4
RenderMouse::RenderMouse
RenderMouse(const CoordXY &p1, SDL_Texture *pTextureCursorTarget, int nPositionZ=0)
Definition: render.cpp:311
RenderRectTexture::m_coordRenderEnd
CoordXY m_coordRenderEnd
Definition: render.h:49
RenderRectTexture::canDraw
virtual bool canDraw(const GameState &state) override
Definition: render.cpp:67
CoordXY
Definition: coordxy.h:5
RenderBuilding2::m_minPos
CoordXY m_minPos
Definition: render.h:88
RenderAbsoluteTextBlock::canDraw
virtual bool canDraw(const GameState &state) override
Definition: render.cpp:111
RenderBuilding2::getMaxPoint
CoordXY getMaxPoint()
Definition: render.cpp:288
RenderObject
Definition: render_base.h:42
RenderTriangle
Definition: render.h:11
RenderRectTexture::RenderRectTexture
RenderRectTexture(const CoordXY &p0, SDL_Texture *tex, int nTextureWidth, int nTextureHeight, int nPositionZ=0)
Definition: render.cpp:46
RenderBuilding2::m_pTexture
SDL_Texture * m_pTexture
Definition: render.h:97
RenderBuilding2::m_pBuilding
GameBuilding * m_pBuilding
Definition: render.h:91
RenderBuilding2::modify
virtual void modify(const GameState &state, IRenderWindow *pRenderWindow) override
Definition: render.cpp:242
GameState
Definition: game_state.h:10
IRenderWindow
Definition: render_base.h:26
RenderBuilding2
Definition: render.h:78
RenderBuilding2::m_vFillPoints
std::vector< CoordXY > m_vFillPoints
Definition: render.h:94
RenderTriangle::modify
virtual void modify(const GameState &state, IRenderWindow *pRenderWindow) override
Definition: render.cpp:23
RenderRectTexture::draw
virtual void draw(SDL_Renderer *renderer) override
Definition: render.cpp:74
RenderRectTexture::currentFrame
SDL_Rect currentFrame
Definition: render.h:51
RenderAbsoluteTextBlock::modify
virtual void modify(const GameState &state, IRenderWindow *pRenderWindow) override
Definition: render.cpp:104
RenderTriangle::m_color
RenderColor m_color
Definition: render.h:28
RenderRectTexture::m_coordPos
CoordXY m_coordPos
Definition: render.h:46
RenderBuilding2::m_currentFrame
SDL_Rect m_currentFrame
Definition: render.h:96
RenderAbsoluteTextBlock::updateText
void updateText(const std::string &sNewText)
Definition: render.cpp:145
RenderAbsoluteTextBlock::RenderAbsoluteTextBlock
RenderAbsoluteTextBlock(const CoordXY &p0, const std::string &sText, int nPositionZ=0)
Definition: render.cpp:88
RenderAbsoluteTextBlock::m_sText
std::string m_sText
Definition: render.h:70
RenderBuilding2::m_maxPos
CoordXY m_maxPos
Definition: render.h:89
RenderTriangle::draw
virtual void draw(SDL_Renderer *renderer) override
Definition: render.cpp:37
RenderRectTexture::m_coordRender
CoordXY m_coordRender
Definition: render.h:48
RenderAbsoluteTextBlock::m_coordCenter
CoordXY m_coordCenter
Definition: render.h:69
RenderMouse::canDraw
virtual bool canDraw(const GameState &state) override
Definition: render.cpp:334
RenderBuilding2::containsPoint
bool containsPoint(const std::vector< CoordXY > &vPoints, const CoordXY &p)
Definition: render.cpp:292
RenderBuilding2::m_vBorderLines
std::vector< RenderLine * > m_vBorderLines
Definition: render.h:92
game_state.h
RenderAbsoluteTextBlock::m_color
SDL_Color m_color
Definition: render.h:73
RenderRectTexture::modify
virtual void modify(const GameState &state, IRenderWindow *pRenderWindow) override
Definition: render.cpp:62
RenderBuilding2::m_vLines
std::vector< RenderLine * > m_vLines
Definition: render.h:95
RenderAbsoluteTextBlock::currentFrame
SDL_Rect currentFrame
Definition: render.h:75
RenderTriangle::canDraw
virtual bool canDraw(const GameState &state) override
Definition: render.cpp:29