質問編集履歴

1

プログラムの変更しました。

2021/05/11 07:54

投稿

taichi12
taichi12

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,54 +1,212 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- int y = 300;
4
-
5
- int ex,espeed,ey;
6
-
7
-
8
-
9
- void setup(){
10
-
11
- size(400,400);
12
-
13
- ex = int(random(width));
14
-
15
- espeed = int(random(1,6));
16
-
17
- ey = -10;
18
-
19
- }
20
-
21
- void draw(){
22
-
23
- background(255);
24
-
25
- noStroke();
26
-
27
- fill(255,10,255);
28
-
29
- ellipse(mouseX,y,70,70);
30
-
31
- if(dist(mouseX,y,ex,ey)<45 || ey-20 > height){
32
-
33
- ey =-10;
34
-
35
- ex = int(random(width));
36
-
37
- espeed = int(random(1,6));
38
-
39
- }
40
-
41
- fill(10,255,10);
42
-
43
- ellipse(ex,ey,20,20);
44
-
45
- ey += espeed;
46
-
47
- }
48
-
49
-
50
-
51
- ↑これをゲーム感覚でできるようにしたいのですがどうすればいいでしょうか。
3
+ int x, flag = 100;
4
+
5
+ int eflag = 0, ex, ey;
6
+
7
+ int point = 0;
8
+
9
+ int num;
10
+
11
+
12
+
13
+ void setup()
14
+
15
+ {
16
+
17
+ size(600, 600);
18
+
19
+ colorMode(RGB, 256);
20
+
21
+ smooth();
22
+
23
+ textSize(24);
24
+
25
+ textAlign(CENTER);
26
+
27
+ x = 100;
28
+
29
+ }
30
+
31
+
32
+
33
+ void draw()
34
+
35
+ {
36
+
37
+ if(flag == 100)
38
+
39
+ {
40
+
41
+ fact();
42
+
43
+ fill(256, 0, 0);
44
+
45
+ text("Press ENTER KEY", 100, 100);
46
+
47
+ flag = 0;
48
+
49
+ }
50
+
51
+ if(flag == 1)
52
+
53
+ {
54
+
55
+ fact();
56
+
57
+ key();
58
+
59
+ enemy();
60
+
61
+ mainDraw();
62
+
63
+ check();
64
+
65
+ }
66
+
67
+ if(flag == 0)
68
+
69
+ {
70
+
71
+ if(keyCode == ENTER)
72
+
73
+ {
74
+
75
+ flag = 1;
76
+
77
+ keyCode = UP;
78
+
79
+ }
80
+
81
+ }
82
+
83
+ }
84
+
85
+
86
+
87
+ void fact()
88
+
89
+ {
90
+
91
+ fill(256, 256, 256);
92
+
93
+ rect(0, 0, 600, 600);
94
+
95
+ }
96
+
97
+
98
+
99
+ void key()
100
+
101
+ {
102
+
103
+ if(keyPressed)
104
+
105
+ {
106
+
107
+ if(keyCode == RIGHT)x += 3;
108
+
109
+ if(keyCode == LEFT)x -= 3;
110
+
111
+ if(x < 0)x = 0;
112
+
113
+ if(x > 600)x = 600;
114
+
115
+ }
116
+
117
+ }
118
+
119
+
120
+
121
+ void enemy()
122
+
123
+ {
124
+
125
+ if(eflag == 0)
126
+
127
+ {
128
+
129
+ eflag = 1;
130
+
131
+ ex = (int)random(600);
132
+
133
+ ey = 0;
134
+
135
+ }
136
+
137
+ if(eflag == 1)
138
+
139
+ {
140
+
141
+ ey += 10;
142
+
143
+ if(ey > 600)
144
+
145
+ {
146
+
147
+ eflag = 0;
148
+
149
+ point ++;
150
+
151
+ }
152
+
153
+ }
154
+
155
+ }
156
+
157
+
158
+
159
+ void mainDraw()
160
+
161
+ {
162
+
163
+ fill(0, 0, 0);
164
+
165
+ ellipse(x, 150, 10, 10);
166
+
167
+ fill(256, 0, 0);
168
+
169
+ ellipse(ex, ey, 5, 5);
170
+
171
+ }
172
+
173
+
174
+
175
+ void check()
176
+
177
+ {
178
+
179
+ num = abs(ex - x) * abs(ex - x) + abs(150 - ey) * abs(150 - ey);
180
+
181
+ if(num < 225)over();
182
+
183
+ }
184
+
185
+
186
+
187
+ void over()
188
+
189
+ {
190
+
191
+ fact();
192
+
193
+ fill(256, 0, 0);
194
+
195
+ flag = 0;
196
+
197
+ text("GAME OVER", 300, 261);
198
+
199
+ text("score=" + point, 300, 339);
200
+
201
+ point = 0;
202
+
203
+ eflag = 0;
204
+
205
+ x = 100;
206
+
207
+ }
208
+
209
+
52
210
 
53
211
 
54
212
 
@@ -60,8 +218,10 @@
60
218
 
61
219
  ### 補足情報(FW/ツールのバージョンなど)
62
220
 
63
-
64
-
65
- 例えば降ってくるボールに時間内にあたって得点を稼ぐとか考えています。
221
+ 上から降ってくるボールをよけるゲームを作っています。当たったらゲームオーバーという形です。
66
-
222
+
67
- ほかにも面白そうなルールがあればアドバイスお願いいたし
223
+ 降ってくるボールの数を増やしたいと思うのですがうすればいいのかがわかりせん
224
+
225
+ あと自分で動かす黒丸をもう少し下にしたいのですがどこを変えればできるのでしょうか。
226
+
227
+ 教えていただければ幸いです。