-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScene2.cpp
61 lines (55 loc) · 1.47 KB
/
Scene2.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
#include "Scene2.h"
#include "Input.h"
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
Scene2::Scene2() {
// ƒ[ƒh
img[0] = LoadGraph("dat/img/fish_sakana_sake.png");
for (int i = 1; i < IMG_MAX; ++i) {
char filepass[100];
sprintf_s(filepass, "dat/img/cat%02d.png", i);
img[i] = LoadGraph(filepass);
}
bg = LoadGraph("dat/img/bg_ground.png");
// ‰Šú‰»
ball[0].SetImg(img[0], 0.1);
ball[0].SetPos(MyDx::FMX + 20, MyDx::FMY / 2);
ball[0].SetSpeed(0);
for (int i = 1; i < BALL_NUM; ++i) {
ball[i].SetImg(img[1 + GetRand(IMG_MAX - 2)], 0.2);
ball[i].SetSpeed(1 + GetRand(5));
}
}
Scene2::~Scene2() {
for (int i = 0; i < IMG_MAX; ++i) {
DeleteGraph(img[i]);
}
DeleteGraph(bg);
}
int Scene2::Update() {
if (Input::Key(KEY_INPUT_ESCAPE) == 1) return -1;
if (Input::Key(KEY_INPUT_R) == 1) return -2;
BaseScene::Update();
if (Input::Key(KEY_INPUT_RIGHT) > 0) ball[0].Move(0.0);
else if (Input::Key(KEY_INPUT_LEFT) > 0) ball[0].Move(DX_PI);
else if (Input::Key(KEY_INPUT_DOWN) > 0) ball[0].Move(0.5 * DX_PI);
else if (Input::Key(KEY_INPUT_UP) > 0) ball[0].Move(1.5 * DX_PI);
else ball[0].SetSpeed(0);
if (ball[0].GetX() < 0) BaseScene::Clear();
for (int i = 0; i < BALL_NUM; i++) {
ball[i].Update();
}
for (int i = 1; i < BALL_NUM; i++) {
if (ball[i].IsCollided(ball[0])) {
BaseScene::Miss();
}
}
return 0;
}
void Scene2::Draw() {
DrawGraph(-20, MyDx::FMY / 2 + 50, bg, TRUE);
for (int i = 0; i < BALL_NUM; i++) {
ball[i].Draw();
}
BaseScene::Draw();
}