-
Notifications
You must be signed in to change notification settings - Fork 0
/
alien.cpp
60 lines (56 loc) · 1.34 KB
/
alien.cpp
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
#include "alien.h"
#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <vector>
Alien::Alien(sf::Time tempsPassePrincipal, int niveau, float difficulte, sf::Vector2u dimensionJeu, sf::Vector2u tailleVaisseau)
{
m_vitesse = 500 * difficulte + niveau * 20;
if(niveau == 1)
{
if(rand() % 100 + 1 < 30)
{
m_arme = true;
}else{
m_arme = false;
}
}
else if(niveau <= 2)
{
if(rand() % 100 + 1 < 60)
{
m_arme = true;
}else{
m_arme = false;
}
}
else if(niveau <= 4)
{
if(rand() % 100 + 1 < 90)
{
m_arme = true;
}else{
m_arme = false;
}
}else{
m_arme = true;
}
m_position.x = rand() % (dimensionJeu.x + 1 - tailleVaisseau.x);
m_position.y = -100;
m_freqDeTir = 1 + difficulte + niveau / 5;
m_tempsPasseMouvement = tempsPassePrincipal;
}
Alien::~Alien()
{
}
void Alien::avancer(sf::Time tempsPassePrincipal)
{
m_position.y = m_position.y + m_vitesse * (tempsPassePrincipal.asSeconds() - m_tempsPasseMouvement.asSeconds());
m_tempsPasseMouvement = tempsPassePrincipal;
}
bool Alien::tirer(sf::Time tempsPassePrincipal)
{
Vaisseau::tirer(tempsPassePrincipal);
if(!(m_arme)) m_tirer = false;
return m_tirer;
}