-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnemyManager.cpp
More file actions
90 lines (70 loc) · 1.87 KB
/
EnemyManager.cpp
File metadata and controls
90 lines (70 loc) · 1.87 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
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
#include "EnemyManager.h"
#include "Enemy.h"
/*
실습 1. WinSizeX,Y를 사막 배경에 맞춰서 변경
2. BackGround를 사막으로 변경
3. player(rocket.bmp) 구현
4. 적 10마리 움직임 구현 ( 좌우 움직임 )
5. missileManager을 구현 - 플레이어와 적 모두 사용할 수 있도록
6. + 적이 1마리씩 밑으로 돌격한다. (돌격하면서 중간에 미사일 1발 발사)
*/
void EnemyManager::Init()
{
// 1. 배열
//enemys = new Enemy[10];
//for (int i = 0; i < 10; i++)
//{
// enemys[i].Init();
//}
// 2. vector
// push_back() 함수의 단점 : push_back 하는 시점의 vetor의 용량이 부족하다면, push_back을 할 때마다 늘어난다?
//for (int i = 0; i < 10; i++)
//{
// vecEnemys.push_back(new Enemy);
// vecEnemys[i]->Init();
//}
//
//vecEnemys.size(); // 10 : 원소의 수
//vecEnemys.resize(60); // 원소 60개가 저장된다. 쓰레기
//vecEnemys.capacity(); // 할당된 메모리 크기 , size와 다름
//vecEnemys.reserve(60); // 메모리를 60개만큼 미리 할당
vecEnemys.resize(10); // resize를 해서 pushback을 안함?
for (int i = 0; i < 10; i++)
{
vecEnemys[i] = new Enemy(); // 안하면 nullptr에 값이 들어감
vecEnemys[i]->Init(100.0f + 100.0f * (i % 5), 80.0f + 100.f * (i / 5));
}
}
void EnemyManager::Release()
{
for (int i = 0; i < 10; i++)
{
vecEnemys[i]->Release();
delete vecEnemys[i];
}
vecEnemys.clear(); // 원소를 모두 제거한다. 단, capacity는 늘어난 그대로 유지된다.
}
void EnemyManager::Update()
{
for (int i = 0; i < vecEnemys.size(); i++)
{
vecEnemys[i]->Update();
}
}
void EnemyManager::Render(HDC hdc)
{
for (int i = 0; i < vecEnemys.size(); i++)
{
vecEnemys[i]->Render(hdc);
}
//wsprintf(szText, TEXT("size : %d, capacity : %d"),vecEnemys.size(), vecEnemys.capacity());
//TextOut(hdc, 20, 60, szText, wcslen(szText));
}
void EnemyManager::AddEnemy(int size)
{
for (int i = 0; i < size; i++)
{
vecEnemys.push_back(new Enemy());
vecEnemys.back()->Init(); // 가장 마지막 원소도 초기화?
}
}