-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathScene.cpp
More file actions
57 lines (48 loc) · 1.37 KB
/
Copy pathScene.cpp
File metadata and controls
57 lines (48 loc) · 1.37 KB
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
#include "Scene.h"
#include "Player.h"
#include "Enemy.h"
extern short ext_scrH;
extern short ext_scrW;
Scene::Scene() {
}
void Scene::createPlayer() {
m_VisualGameObjects.emplace_back(new Player());
ply = (Player*)m_VisualGameObjects[0]->refer();
}
void Scene::createEnemy() {
VisualGameObject* newEnemy = new Enemy(0, 0);
std::array<short, 2> newEnemySize = newEnemy->getSize();
// difficulty? ez - 3, mid - 6, etc.
short enemyCount = 0;
for (VisualGameObject* obj : m_VisualGameObjects) {
if (obj->getDetailedName() == "Enemy") {
enemyCount++;
}
}
srand(time(NULL));
short rnd_X = (rand() % (ext_scrW/2)) + (ext_scrW/2);
short rnd_Y = (rand() % (ext_scrH/4)) + (ext_scrH/4);
newEnemy->setPos(rnd_X, rnd_Y);
if (enemyCount > 4){
delete newEnemy;
return;
}
m_VisualGameObjects.emplace_back(newEnemy);
}
void Scene::forwardPlayerActions(short& in_controls) {
if (!m_VisualGameObjects.empty()) {
ply->move(in_controls, 2);
ply->shoot(in_controls, &m_VisualGameObjects);
}
}
void Scene::purge() {
for (int i = 0; i < m_VisualGameObjects.size(); i++) {
VisualGameObject* obj = m_VisualGameObjects[i];
if(!(obj->isDead())) {
obj->dealDamage(100);
delete obj;
}
}
delete ply;
m_VisualGameObjects.clear();
}