-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHuman.cpp
76 lines (74 loc) · 1.51 KB
/
Human.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include "Human.h"
Human::Human() : BaseClass() {
x_val_ = y_val_ = 0;
}
Human::~Human() {
}
void Human::HandleInputAction(SDL_Event event) {
if (event.type == SDL_KEYDOWN)
{
switch (event.key.keysym.sym)
{
case SDLK_UP:
y_val_ -= HEIGHT_MAIN_OBJECT / 4;
break;
case SDLK_DOWN:
y_val_ += HEIGHT_MAIN_OBJECT / 4;
break;
case SDLK_RIGHT:
x_val_ += WIDTH_MAIN_OBJECT / 4;
break;
case SDLK_LEFT:
x_val_ -= WIDTH_MAIN_OBJECT / 4;
break;
default:
break;
}
}
else if (event.type == SDL_KEYUP)
{
switch (event.key.keysym.sym)
{
case SDLK_UP:
y_val_ += HEIGHT_MAIN_OBJECT / 4;
break;
case SDLK_DOWN:
y_val_ -= HEIGHT_MAIN_OBJECT / 4;
break;
case SDLK_RIGHT:
x_val_ -= WIDTH_MAIN_OBJECT / 4;
break;
case SDLK_LEFT:
x_val_ += WIDTH_MAIN_OBJECT / 4;
break;
default:
break;
}
}
else if (event.type == SDL_MOUSEBUTTONUP)
{
Rocket* rocket = new Rocket;
rocket->SetRect(_rect.x, _rect.y);
rocket->CreateEquation();
_rocketList.push_back(rocket);
}
else {
}
}
void Human::HandleMove() {
_rect.x += x_val_;
if (_rect.x < 0 || _rect.x + WIDTH_MAIN_OBJECT > SCREEN_LENGTH)
{
_rect.x -= x_val_;
}
_rect.y += y_val_;
if (_rect.y < 0 || _rect.y + HEIGHT_MAIN_OBJECT > SCREEN_WIDTH)
{
_rect.y -= y_val_;
}
}
void Human::FireBullet() {
Bullet* bullet = new Bullet;
bullet->SetRect(_rect.x + HEIGHT_MAIN_OBJECT/2,_rect.y - WIDTH_MAIN_OBJECT/2);
_bulletList.push_back(bullet);
}