EngineLib
 All Classes Functions
BaseEngine.h
1 /*
2  * BaseEngine.h
3  *
4  * Created on: 14.10.2017
5  * Author: robert
6  */
7 
8 #ifndef BASEENGINE_H_
9 #define BASEENGINE_H_
10 
11 
12 
13 #include <SDL2/SDL.h>
14 #include <SDL2/SDL_image.h>
15 #include <SDL2/SDL_ttf.h>
16 #include <SDL2/SDL_mixer.h>
17 #include "math.h"
18 
19 #include "Timer.h"
20 #include "BaseSprite.h"
21 #include "SimpleSprite.h"
22 #include "AnimatedSprite.h"
23 #include "TileSet.h"
24 #include "Map.h"
25 
43 class BaseEngine {
44 public:
45  BaseEngine();
50  BaseEngine(SDL_Renderer* renderer);
51  virtual ~BaseEngine();
58  int init(int screen_width,int screen_height,int framerate);
63  SDL_Renderer* getRenderer();
67  virtual void start();
71  virtual void stop();
75  virtual void render();
79  virtual void update()=0;
83  virtual void preRender()=0;
87  virtual void postRender()=0;
88 
93  void setRenderer(SDL_Renderer *renderer);
98  void addSprite(BaseSprite *sprite);
105  void addSprite(BaseSprite *sprite,int x, int y);
111  void drawLine(Vector2D v1,Vector2D v2);
118  void drawLine(Vector2D v1,Vector2D v2,SDL_Color col);
123  int getWidth();
128  int getHeight();
133  void setMap(Map *map);
138  Map* getMap();
143  float getLastFrameTime();
148  void setFrameRate(int framerate);
153  int getFrameRate();
158  TileSet* getTileSet();
159 
166  TTF_Font* loadTTFFont(const char* filename,int size);
174  TTF_Font* getTTFFont(TTF_Font *ft,const char* filename,int size);
185  void render_text(
186  SDL_Renderer *renderer,
187  int x,
188  int y,
189  const char *text,
190  TTF_Font *font,
191  SDL_Color *color
192  );
201  void render_text(
202  int x,
203  int y,
204  const char *text,
205  SDL_Color *color
206  );
207 
208 void left();
209 void right();
210 void up();
211 void down();
212 
213 private:
214  Timer *timer;
215  SDL_Renderer *renderer;
216  int screen_width,screen_height;
217  bool started;
218  int num_sprites;
219  double angle;
220  int framerate;
221  BaseSprite* sprites[100];
222 
223  TTF_Font *font;
224  char text[50];
225  SDL_Color white;
226  SDL_Rect rect;
227  float lastframetime;
228 
229  AnimatedSprite animated;
230  TileSet *tileset;
231 
232  Map *map;
233  void printSDLVersion();
234 };
235 
236 #endif /* BASEENGINE_H_ */
Map * getMap()
Definition: BaseEngine.cpp:253
TTF_Font * getTTFFont(TTF_Font *ft, const char *filename, int size)
Definition: BaseEngine.cpp:131
virtual void render()
Definition: BaseEngine.cpp:54
void setFrameRate(int framerate)
Definition: BaseEngine.cpp:115
float getLastFrameTime()
Definition: BaseEngine.cpp:216
virtual void start()
Definition: BaseEngine.cpp:43
virtual void preRender()=0
int init(int screen_width, int screen_height, int framerate)
Definition: BaseEngine.cpp:94
Definition: AnimatedSprite.h:37
virtual void stop()
Definition: BaseEngine.cpp:48
TTF_Font * loadTTFFont(const char *filename, int size)
Definition: BaseEngine.cpp:125
void addSprite(BaseSprite *sprite)
Definition: BaseEngine.cpp:137
Definition: Map.h:34
Definition: BaseEngine.h:43
int getHeight()
Definition: BaseEngine.cpp:243
TileSet * getTileSet()
int getFrameRate()
Definition: BaseEngine.cpp:120
virtual void postRender()=0
virtual void update()=0
Definition: BaseSprite.h:19
Definition: Timer.h:19
Definition: math.h:12
int getWidth()
Definition: BaseEngine.cpp:238
void setRenderer(SDL_Renderer *renderer)
Definition: BaseEngine.cpp:84
Definition: TileSet.h:27
SDL_Renderer * getRenderer()
Definition: BaseEngine.cpp:89
void drawLine(Vector2D v1, Vector2D v2)
Definition: BaseEngine.cpp:221
void render_text(SDL_Renderer *renderer, int x, int y, const char *text, TTF_Font *font, SDL_Color *color)
Definition: BaseEngine.cpp:180
void setMap(Map *map)
Definition: BaseEngine.cpp:248