1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| #include <iostream>
#include "Vaisseau.hpp"
#include "Projectile.hpp"
using namespace sf;
using namespace std;
const string VAISSEAU_FILE_PATH = "vaisseau.png";
const string BACKGROUND_FILE_PATH = "background.png";
const string ENNEMI_FILE_PATH = "Ennemi1.png";
const Vector2f VAISSEAU_POSIT_INIT (400, 400);
const Vector2f ENNEMI_1_POSIT_INIT (100, -146);
const Vector2f ENNEMI_2_POSIT_INIT (300, -146);
const Vector2f ENNEMI_3_POSIT_INIT (500, -146);
const Vector2f ENNEMI_4_POSIT_INIT (700, -146);
const IntRect VAISSEAU_SUBRECT (0, 0, 128, 180);
const IntRect ENNEMI_SUBRECT (0, 0, 134, 146);
const float VAISSEAU_VITESSE = 0.5;
const Vector2f TAILLE_FANETRE (1024, 768);
int main()
{
Image imgBackground;
Sprite background;
Vaisseau monVaisseau(VAISSEAU_FILE_PATH, VAISSEAU_POSIT_INIT, VAISSEAU_SUBRECT, VAISSEAU_VITESSE);
Vaisseau ennemi_1 (ENNEMI_FILE_PATH, ENNEMI_1_POSIT_INIT, ENNEMI_SUBRECT, VAISSEAU_VITESSE); //ne faites pas attention aux vaisseau ennemis, c'est juste un essai.
Vaisseau ennemi_2 (ENNEMI_FILE_PATH, ENNEMI_2_POSIT_INIT, ENNEMI_SUBRECT, VAISSEAU_VITESSE);
Vaisseau ennemi_3 (ENNEMI_FILE_PATH, ENNEMI_3_POSIT_INIT, ENNEMI_SUBRECT, VAISSEAU_VITESSE);
Vaisseau ennemi_4 (ENNEMI_FILE_PATH, ENNEMI_4_POSIT_INIT, ENNEMI_SUBRECT, VAISSEAU_VITESSE);
RenderWindow App(VideoMode((int)TAILLE_FANETRE.x,(int)TAILLE_FANETRE.y, 32), "Alien Epurator");
if (!imgBackground.LoadFromFile(BACKGROUND_FILE_PATH))
{
cerr << "Erreur dans le chargement de "<<BACKGROUND_FILE_PATH << endl;
}
else
{
background.SetImage(imgBackground);
}
while (App.IsOpened())
{
Event event;
while (App.GetEvent(event))
{
if ((event.Type == Event::KeyPressed && event.Key.Code == Key::Escape)||event.Type == Event::Closed)
{
App.Close();
}
}
ennemi_1.Deplacement(Vaisseau::ARRIERE); //
ennemi_2.Deplacement(Vaisseau::ARRIERE);
ennemi_3.Deplacement(Vaisseau::ARRIERE);
ennemi_4.Deplacement(Vaisseau::ARRIERE);
const Input & input = App.GetInput();
if(input.IsKeyDown(Key::Up))
{
monVaisseau.Deplacement(Vaisseau::AVANT);
}
if(input.IsKeyDown(Key::Down))
{
monVaisseau.Deplacement(Vaisseau::ARRIERE);
}
if(input.IsKeyDown(Key::Right))
{
monVaisseau.Deplacement(Vaisseau::DROITE);
}
if (input.IsKeyDown(Key::Left))
{
monVaisseau.Deplacement(Vaisseau::GAUCHE);
}
if (input.IsKeyDown(Key::Space))
{
vector2f positionActuelle = monVaisseau.GetPositAct();
monVaisseau.Attaquer(Vaisseau::FEU, positionActuelle.x, positionActuelle.y); //Le but ici est d'appeler indirectement le constructeur de Projectile si on appuie sur Space.
}
App.Clear();
App.Draw(background);
App.Draw(monVaisseau.GetSprite());
App.Draw(monVaisseau.GetProjSprite()); // Imposiible de dessiner le sprite Projectile, j'ai besoin d'une instance de Projectile dans le main.
App.Draw(ennemi_1.GetSprite());
App.Draw(ennemi_2.GetSprite());
App.Draw(ennemi_3.GetSprite());
App.Draw(ennemi_4.GetSprite());
App.Display();
}
return EXIT_SUCCESS;
} |
Partager