SUPER Space invader : Turbo edition DX - VS GOD 1.0.0
A simple space invader ripoff
pixelManager.h
Go to the documentation of this file.
1
13#ifndef GUARD_PIXELMANAGER_H
14#define GUARD_PIXELMANAGER_H
15
16#include <string>
17#include "mingl/mingl.h"
18#include "mingl/shape/line.h"
19#include "mingl/shape/triangle.h"
20#include "mingl/shape/rectangle.h"
21#include "mingl/shape/circle.h"
22#include "mingl/gui/sprite.h"
23#include "mingl/gui/text.h"
24#include "utils.h"
25#include "playMode.h"
26#include "menu.h"
27#include "scoresManager.h"
28#include "mySprite.h"
29
30using namespace std;
31
32typedef nsGui::GlutFont::GlutFonts Font;
33
39/*
40 * It's MinGL's fault. This is all I have to say
41 */
42
43#define ADD_SPRITE_TASK(X) tasks.push_back((X).asyncLoad("assets/"#X".si2"));
44
46public:
47
51 MinGL& window;
52
58 virtual void loadSprites(vector<Task>& tasks);
59
64
69
74
79
84
90 explicit PixelManager(MinGL& window);
91
99 virtual void drawInvaderA(const Position& baseVector, unsigned size, const RGBAcolor& color) const;
100
108 virtual void drawInvaderB(const Position& baseVector, unsigned size, const RGBAcolor& color) const;
109
117 virtual void drawInvaderC(const Position& baseVector, unsigned size, const RGBAcolor& color) const;
118
127 virtual void drawPlayer(playerID pID, unsigned x, unsigned width, const nsGraphics::RGBAcolor& color) const;
128
136 virtual void drawMissile(const Position& baseVector, unsigned width, const nsGraphics::RGBAcolor& color) const;
137
145 virtual void drawTorpedo(const Position& baseVector, unsigned width, const nsGraphics::RGBAcolor& color) const;
146
147#define HEART_LENGTH 64
148
154 virtual void drawHeart(const Position& baseVector) const;
155
162 void drawSprite(const MySprite& msp, const Position& pos) const;
163
171 void displayButton(const Position& baseVector,const string& text,nsGraphics::RGBAcolor& color);
172
181 void drawText(const Position& pos, const string& text, const RGBAcolor& color = nsGraphics::KWhite, Font font = Font::BITMAP_TIMES_ROMAN_24) const;
182
189
197 bool showDeathMenu(const vector<ScoreLink>& rankings,const WinValue& winner);
198
204 unsigned getScreenHeight() const;
205
211 unsigned getScreenWidth() const;
212
217 void startFrame() const;
218
223 void endFrame() const;
224
232 void askPlayerNameMenu(playerID pID, unsigned score, string& name);
233
234 // y will be negative sometimes, so not unsigned
235
241 void drawGodBench(int y) const;
242
249 void drawGodFace(int y, bool angry=false) const;
250
251private:
252
259 void drawMenu(const Position& pos, Menu& currentMenu);
260
269 void drawMenu(const Position& pos, Menu& currentMenu, const vector<ScoreLink>& rankings, const WinValue& winner);
270};
271
272
273#endif
main display function, clear the window and calls sub display functions
Definition: pixelManager.h:45
void startFrame() const
clear the screen for a new frame
MySprite leftHand
sprite of the left hand of god
Definition: pixelManager.h:83
virtual void loadSprites(vector< Task > &tasks)
loads sprites in parallel using multiple threads
Definition: pixelManager.cpp:4
void drawGodFace(int y, bool angry=false) const
display god's face
PixelManager(MinGL &window)
constructor the pixel manager class
void drawSprite(const MySprite &msp, const Position &pos) const
display a sprite on screen
virtual void drawPlayer(playerID pID, unsigned x, unsigned width, const nsGraphics::RGBAcolor &color) const
display a player on screen
MySprite menuBackground
sprite of the background during menu
Definition: pixelManager.h:68
PlayMode showInitialMenu()
show the title screen of the game
Definition: drawMenus.cpp:72
MySprite rightHand
sprite of the right hand of god
Definition: pixelManager.h:78
void displayButton(const Position &baseVector, const string &text, nsGraphics::RGBAcolor &color)
display a menu button on screen
Definition: drawMenus.cpp:22
void endFrame() const
finish a frame render
void drawGodBench(int y) const
display god's bar
virtual void drawMissile(const Position &baseVector, unsigned width, const nsGraphics::RGBAcolor &color) const
display a missile on screen
void drawText(const Position &pos, const string &text, const RGBAcolor &color=nsGraphics::KWhite, Font font=Font::BITMAP_TIMES_ROMAN_24) const
display text on screen
virtual void drawInvaderB(const Position &baseVector, unsigned size, const RGBAcolor &color) const
display a type B invader on screen
unsigned getScreenHeight() const
give the height of the screen
virtual void drawHeart(const Position &baseVector) const
display a singular heart on screen
unsigned getScreenWidth() const
give the width of the screen
virtual void drawTorpedo(const Position &baseVector, unsigned width, const nsGraphics::RGBAcolor &color) const
display a torpedo on screen
virtual void drawInvaderA(const Position &baseVector, unsigned size, const RGBAcolor &color) const
display a type A invader on screen
MySprite logo
sprite of the logo of the game
Definition: pixelManager.h:63
MinGL & window
display window
Definition: pixelManager.h:51
bool showDeathMenu(const vector< ScoreLink > &rankings, const WinValue &winner)
show the menu after a player lose, or all invader has been defeated
Definition: drawMenus.cpp:156
virtual void drawInvaderC(const Position &baseVector, unsigned size, const RGBAcolor &color) const
display a type C invader on screen
MySprite gameBackground
sprite of the background during gameplay
Definition: pixelManager.h:73
void askPlayerNameMenu(playerID pID, unsigned score, string &name)
display the player name selection menu
Definition: drawMenus.cpp:108
simple menu backend implementation
nsGui::GlutFont::GlutFonts Font
Definition: pixelManager.h:32
game mode options
PlayMode
List of all game playmode.
Definition: playMode.h:17
Score file manager.
menu stuct
Definition: menu.h:22
utilies for the game
unsigned playerID
Definition: utils.h:52
nsGraphics::Vec2D Position
Definition: utils.h:51
WinValue
list of win values
Definition: utils.h:43