From a39266b044d880a37396fb72ac01bbc310e1f90d Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 16 Dec 2021 12:18:49 +0100 Subject: [PATCH] finished for this morning --- headers/config.h | 6 +++--- headers/drawEngine.h | 19 +++++++++++++++++++ headers/game.h | 14 +++++++------- headers/space.h | 8 -------- headers/sprites.h | 29 ----------------------------- headers/typeAlien.h | 8 -------- src/{sprites.cpp => drawEngine.cpp} | 16 ++++++++-------- src/game_basics.cpp | 18 ++++++++++-------- src/game_managers.cpp | 8 ++++++++ src/main.cpp | 2 +- src/space.cpp | 1 - 11 files changed, 56 insertions(+), 73 deletions(-) create mode 100644 headers/drawEngine.h delete mode 100644 headers/space.h delete mode 100644 headers/sprites.h delete mode 100644 headers/typeAlien.h rename src/{sprites.cpp => drawEngine.cpp} (86%) delete mode 100644 src/space.cpp diff --git a/headers/config.h b/headers/config.h index eea2b14..6ba414f 100644 --- a/headers/config.h +++ b/headers/config.h @@ -1,12 +1,12 @@ -#ifndef SPACE_CONFIG -#define SPACE_CONFIG +#ifndef GUARD_CONFIG +#define GUARD_CONFIG #include using namespace std; struct Config{ - vector> grid; + aliensGrid grid; unsigned alien_size; unsigned distance; diff --git a/headers/drawEngine.h b/headers/drawEngine.h new file mode 100644 index 0000000..8c8c423 --- /dev/null +++ b/headers/drawEngine.h @@ -0,0 +1,19 @@ +#ifndef GUARD_DRAWENGINE +#define GUARD_DRAWENGINE + +#include "mingl/mingl.h" +#include "mingl/shape/line.h" +#include "mingl/shape/triangle.h" +#include "mingl/shape/rectangle.h" +#include "mingl/shape/circle.h" + +class DrawEngine{ +public: + MinGL window; + void dessinerInvader1(const nsGraphics::Vec2D& baseVector); + void dessinerInvader2(const nsGraphics::Vec2D& baseVector); + void dessinerInvader3(const nsGraphics::Vec2D& baseVector); +}; + + +#endif \ No newline at end of file diff --git a/headers/game.h b/headers/game.h index 2bdad07..8ac7c3d 100644 --- a/headers/game.h +++ b/headers/game.h @@ -1,8 +1,8 @@ -#ifndef game -#define game +#ifndef GUARD_GAME +#define GUARD_GAME #include #include "mingl/mingl.h" -#include "sprites.h" +#include "drawEngine.h" #include "config.h" using namespace std; @@ -13,20 +13,20 @@ typedef vector aliensGrid; class Game { private: - MinGL window; + DrawEngine drawer; Config conf; unsigned baseX; unsigned baseY; - vector> aliens; - matriceAlien grid; + aliensGrid grid; vector missiles; vector torpilles; + void loadConfig(); + unsigned manageCollisions(); void managePlayer(); bool manageInvaders(); void display(); - void importConfig(); void summon(); void deleteEntity(); void invaderMovement(); diff --git a/headers/space.h b/headers/space.h deleted file mode 100644 index af53c12..0000000 --- a/headers/space.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef space -#define space - -void display(CVString & space, entites & pos_entites); - -void initTerminalSpace (CVString & space, entites & liste_pos); - -#endif \ No newline at end of file diff --git a/headers/sprites.h b/headers/sprites.h deleted file mode 100644 index fe6062b..0000000 --- a/headers/sprites.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef sprites -#define sprites - -#include "mingl/mingl.h" -#include "mingl/shape/line.h" -#include "mingl/shape/triangle.h" -#include "mingl/shape/rectangle.h" -#include "mingl/shape/circle.h" - -enum typeA{ - vert, - rouge, - bleu, -}; - -/* -sprites envahisseurUn(); -sprites envahisseurDeux(); -sprites envahisseurTrois(); -sprites joueur(); -sprites missile(); -sprites torpille(); -*/ - -void dessinerInvader1(MinGL& window, const nsGraphics::Vec2D& baseVector); -void dessinerInvader2(MinGL& window, const nsGraphics::Vec2D& baseVector); -void dessinerInvader3(MinGL& window, const nsGraphics::Vec2D& baseVector); - -#endif \ No newline at end of file diff --git a/headers/typeAlien.h b/headers/typeAlien.h deleted file mode 100644 index 461e1cc..0000000 --- a/headers/typeAlien.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// Created by itrooz on 16/12/2021. -// - -#ifndef SPACE_TYPEALIEN_H -#define SPACE_TYPEALIEN_H - -#endif //SPACE_TYPEALIEN_H diff --git a/src/sprites.cpp b/src/drawEngine.cpp similarity index 86% rename from src/sprites.cpp rename to src/drawEngine.cpp index 855451a..5a1e5e8 100644 --- a/src/sprites.cpp +++ b/src/drawEngine.cpp @@ -1,7 +1,11 @@ -#include "sprite.h" +#include "drawEngine.h" -void dessinerInvader1(MinGL& window, const nsGraphics::Vec2D& baseVector){ +void DrawEngine::DrawEngine(){ + window.initGlut(); + window.initGraphic(); +} +void DrawEngine::dessinerInvader1(const nsGraphics::Vec2D& baseVector){ window << nsShape::Circle(nsGraphics::Vec2D(50, 50)+baseVector, 50, nsGraphics::KGray); window << nsShape::Circle(nsGraphics::Vec2D(60, 50)+baseVector, 50, nsGraphics::KGray); window << nsShape::Triangle(nsGraphics::Vec2D(35, 50)+baseVector, nsGraphics::Vec2D(15, 25)+baseVector, nsGraphics::Vec2D(15, 75)+baseVector, nsGraphics::KBlack); @@ -12,7 +16,7 @@ void dessinerInvader1(MinGL& window, const nsGraphics::Vec2D& baseVector){ } -void dessinerInvader2(MinGL& window, const nsGraphics::Vec2D& baseVector){ +void DrawEngine::dessinerInvader2(const nsGraphics::Vec2D& baseVector){ window << nsShape::Circle(nsGraphics::Vec2D(50, 50)+baseVector, 50, nsGraphics::KRed); window << nsShape::Circle(nsGraphics::Vec2D(60, 50)+baseVector, 50, nsGraphics::KRed); window << nsShape::Rectangle(nsGraphics::Vec2D(25, 30)+baseVector, nsGraphics::Vec2D(45, 40)+baseVector, nsGraphics::KBlack); @@ -20,7 +24,7 @@ void dessinerInvader2(MinGL& window, const nsGraphics::Vec2D& baseVector){ window << nsShape::Rectangle(nsGraphics::Vec2D(35, 65)+baseVector, nsGraphics::Vec2D(75, 72)+baseVector, nsGraphics::KBlack); } -void dessinerInvader3(MinGL& window, const nsGraphics::Vec2D& baseVector){ +void DrawEngine::dessinerInvader3(const nsGraphics::Vec2D& baseVector){ window << nsShape::Circle(nsGraphics::Vec2D(60, 50)+baseVector, 50, nsGraphics::KGreen); window << nsShape::Circle(nsGraphics::Vec2D(50, 50)+baseVector, 50, nsGraphics::KGreen); window << nsShape::Circle(nsGraphics::Vec2D(35, 35)+baseVector, 10, nsGraphics::KBlack); @@ -28,7 +32,3 @@ void dessinerInvader3(MinGL& window, const nsGraphics::Vec2D& baseVector){ window << nsShape::Rectangle(nsGraphics::Vec2D(35, 65)+baseVector, nsGraphics::Vec2D(75, 72)+baseVector, nsGraphics::KBlack); } -sprites joueur(); -sprites missile(); -sprites torpille(); - diff --git a/src/game_basics.cpp b/src/game_basics.cpp index bfb52c3..8170601 100644 --- a/src/game_basics.cpp +++ b/src/game_basics.cpp @@ -3,8 +3,7 @@ Game::Game() : window("space invader du turfu ma gueule", nsGraphics::Vec2D(1280, 720), nsGraphics::Vec2D(128, 128), nsGraphics::KBlack) { - this->window.initGlut(); - this->window.initGraphic(); + loadConfig(); } void Game::managedGame() { @@ -46,10 +45,13 @@ unsigned Game::playGame(){ // returns when game is finished /** Displays the screen once, and returns * */ -void Game::display(){ - for(aliensLine& line : this->grid){ - for(Alien& al : line){ - pixelManager.dessinerInvader1(this->window, alien.coord); - } - } +void Game::display() { + for (unsigned i = 0; i < this->grid.size(); ++i){ + for (unsigned j = 0; j < this->grid[0].size(); ++j){ + drawer.dessinerInvader1(nsGraphics::Vec2D( + baseX+j*conf.alien_size+j*conf.distance, + baseY+i*conf.alien_size+i*conf.distance + )); + } + } } \ No newline at end of file diff --git a/src/game_managers.cpp b/src/game_managers.cpp index 7c5bf76..2ba88fd 100644 --- a/src/game_managers.cpp +++ b/src/game_managers.cpp @@ -12,4 +12,12 @@ void Game::managePlayer(){ bool Game::manageInvaders(){ return false; +} + +/** makes projectile smove, and manage collisions between everything + * + * @return true if the invaders crossed the first line of the grid, else false +*/ +unsigned Game::manageCollisions(){ + } \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 4dc06f5..ec2879a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,7 +3,7 @@ using namespace std; int main(){ - Game g(); + Game g; g.managedGame(); return 0; } \ No newline at end of file diff --git a/src/space.cpp b/src/space.cpp deleted file mode 100644 index 68522d6..0000000 --- a/src/space.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "space.h" \ No newline at end of file