#ifndef GUARD_PIXELMANAGER_H #define GUARD_PIXELMANAGER_H #include #include "mingl/mingl.h" #include "mingl/shape/line.h" #include "mingl/shape/triangle.h" #include "mingl/shape/rectangle.h" #include "mingl/shape/circle.h" #include "mingl/gui/sprite.h" #include "mingl/gui/text.h" #include "utils.h" #include "playMode.h" using namespace std; class PixelManager{ public: MinGL& window; /* * Sprites are not const because for some reason the texture is associated with coordinates, * and we have no way to dissociate them... * So the objects are constantly updated with new coordinates as they need to be drawn */ nsGui::Sprite background = nsGui::Sprite("./assets/bg.si2"); nsGui::Sprite handOpen = nsGui::Sprite("./assets/hand_open.si2"); nsGui::Sprite handClosed = nsGui::Sprite("./assets/hand_closed.si2"); explicit PixelManager(MinGL&); void drawInvaderA(const Position& baseVector, unsigned size, const RGBAcolor& color) const; void drawInvaderB(const Position& baseVector, unsigned size, const RGBAcolor& color) const; void drawInvaderC(const Position& baseVector, unsigned size, const RGBAcolor& color) const; void drawPlayer(unsigned x, unsigned width, const nsGraphics::RGBAcolor& color) const; void drawMissile(const Position& baseVector, unsigned width, const nsGraphics::RGBAcolor& color) const; void drawTorpedo(const Position& baseVector, unsigned width, const nsGraphics::RGBAcolor& color) const; void drawSprite(nsGui::Sprite& sprite, const Position& pos) const; void drawBackground() const; void drawFPS(unsigned fps) const; PlayMode showInitialMenu() const; bool showDeathMenu() const; unsigned getScreenHeight() const; unsigned getScreenWidth() const; void startFrame() const; void endFrame() const; void askPlayerNameMenu(playerID pID, string& name) const; // y will be negative sometimes, so not unsigned void displayGodBench(int y) const; void displayGodRightHand(const Position& pos) const; void displayGodLeftHand(const Position& pos) const; }; #endif