質問編集履歴

2

2020/05/23 16:59

投稿

hacch
hacch

スコア15

test CHANGED
File without changes
test CHANGED
@@ -87,3 +87,289 @@
87
87
  こちらに現在のソースコードの写真をアップしました。
88
88
 
89
89
  https://d.kuku.lu/60e92a2e4
90
+
91
+
92
+
93
+ ```Qt
94
+
95
+
96
+
97
+ #include "ofApp.h"
98
+
99
+ float fx; //長方形(枠)の中心のx座標
100
+
101
+ float fy; //長方形(枠)の中心のy座標
102
+
103
+ float fw; //長方形(枠)の幅
104
+
105
+ float fh; //長方形(枠)の高さ
106
+
107
+
108
+
109
+ float bx; //円の中心のx座標
110
+
111
+ float by; //円の中心のy座標
112
+
113
+ float radius; //円の半径
114
+
115
+
116
+
117
+
118
+
119
+ float rx; //パドルの中心のx座標
120
+
121
+ float ry; //パドルの中心のy座標
122
+
123
+ float rw; //パドルの幅
124
+
125
+ float rh; //パドルの高さ
126
+
127
+
128
+
129
+ float x_speed; //パドルのx移動速度
130
+
131
+ float y_speed; //パドルのy移動速度
132
+
133
+
134
+
135
+ float bx_speed; //円のx方向速度
136
+
137
+ float by_speed; //円のy方向速度
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ //--------------------------------------------------------------
146
+
147
+ void ofApp::setup(){
148
+
149
+ ofBackground(0, 0, 0); //背景を黒
150
+
151
+ ofSetCircleResolution(64); //円の解像度
152
+
153
+
154
+
155
+ //長方形の中心を描画位置にする
156
+
157
+ ofSetRectMode(OF_RECTMODE_CENTER);
158
+
159
+ ofSetFrameRate(30); //フレームレートの設定
160
+
161
+
162
+
163
+ fx = ofGetWidth()/2.0; //枠の描画位置 x座標
164
+
165
+ fy = ofGetHeight()/2.0; //枠の描画位置 y座標
166
+
167
+ fw = 900; //幅
168
+
169
+ fh = 570; //高さ
170
+
171
+ bx = 300; //円の描画位置 x座標
172
+
173
+ by = 300; //円の描画位置 y座標
174
+
175
+ bx_speed = 8; //円のx軸方向の移動速度
176
+
177
+ by_speed = 3; //円のy軸方向の移動速度
178
+
179
+ radius = 25; //円の半径
180
+
181
+
182
+
183
+ rx = ofGetWidth()/2; //パドルの初期位置 x座標
184
+
185
+ ry = ofGetHeight()/2; //パドルの初期位置 y座標
186
+
187
+ rw = 100; //パドルの幅
188
+
189
+ rh = 10; //パドルの高さ
190
+
191
+
192
+
193
+ x_speed = 50; //パドルのx移動速度
194
+
195
+ y_speed = 25; //パドルのy移動速度
196
+
197
+
198
+
199
+
200
+
201
+ }
202
+
203
+
204
+
205
+ //--------------------------------------------------------------
206
+
207
+ void ofApp::update(){
208
+
209
+ bx += bx_speed ; //x軸方向の移動
210
+
211
+ by += by_speed ; //y軸方向の移動
212
+
213
+
214
+
215
+ //円のx軸方向の範囲制限
216
+
217
+ if ((bx<fx-fw/2+radius)||
218
+
219
+
220
+
221
+ (bx>fx+fw/2-radius)){
222
+
223
+
224
+
225
+ bx_speed *= -1 ; //円のy軸方向の移動方向反転
226
+
227
+ }
228
+
229
+ //円のy軸方向の範囲制限
230
+
231
+ if ((by<fy-fh/2+radius)||
232
+
233
+
234
+
235
+ (by>fy+fh/2-radius)){
236
+
237
+
238
+
239
+ by_speed *= -1 ; //円のy軸方向の移動方向反転
240
+
241
+ }
242
+
243
+
244
+
245
+ //パドルのx軸方向の移動範囲制限
246
+
247
+ if(rx<fx-fw/2+rw/2){//パドル左端の制限
248
+
249
+ rx=fx-fw/2+rw/2;
250
+
251
+ }
252
+
253
+ if(rx>fx+fw/2-rw/2){//右端の制限
254
+
255
+ rx=fx+fw/2-rw/2;
256
+
257
+ }
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+ //y軸方向の移動範囲制限
266
+
267
+ if(ry<fy-fh/2+rh/2){//パドル上の制限
268
+
269
+ ry=fy-fh/2+rh/2;
270
+
271
+ }
272
+
273
+ if(ry>fy+fh/2-rh/2){//パドル下の制限
274
+
275
+ ry=fy+fh/2-rh/2;
276
+
277
+ }
278
+
279
+
280
+
281
+
282
+
283
+ if(by+radius>ry){ //ここがわからないです。
284
+
285
+ by_speed*=-1;
286
+
287
+ }
288
+
289
+
290
+
291
+ }
292
+
293
+
294
+
295
+ //--------------------------------------------------------------
296
+
297
+ void ofApp::draw(){
298
+
299
+ ofNoFill();//塗りつぶしなし
300
+
301
+ ofSetLineWidth(4);//線の太さを4
302
+
303
+ ofSetColor(255,255,255);//白色に
304
+
305
+ ofDrawRectangle(fx,fy,fw,fh);//長方形を描く
306
+
307
+
308
+
309
+ ofFile();//塗りつぶしあり
310
+
311
+ ofSetColor(255,0,0);//赤色
312
+
313
+ ofDrawCircle(bx,by,radius);//円を描く
314
+
315
+
316
+
317
+ //パドルの描画
318
+
319
+ ofFile();
320
+
321
+ ofSetColor(255,255,255);//描画色 白
322
+
323
+ ofDrawRectangle(rx,ry,rw,rh);//パドルの描画
324
+
325
+
326
+
327
+
328
+
329
+ }
330
+
331
+
332
+
333
+ //--------------------------------------------------------------
334
+
335
+ void ofApp::keyPressed(int key){
336
+
337
+
338
+
339
+ //左矢印キー
340
+
341
+ if(key==OF_KEY_LEFT){
342
+
343
+ rx-=x_speed;
344
+
345
+ }
346
+
347
+ //右矢印キー
348
+
349
+ if(key==OF_KEY_RIGHT){
350
+
351
+ rx+=x_speed;
352
+
353
+ }
354
+
355
+ if(key==OF_KEY_UP){
356
+
357
+ ry-=y_speed;
358
+
359
+ }
360
+
361
+ if(key==OF_KEY_DOWN){
362
+
363
+ ry+=y_speed;
364
+
365
+ }
366
+
367
+ }
368
+
369
+ ```ここに言語を入力
370
+
371
+ コード
372
+
373
+ ```
374
+
375
+ ```

1

2020/05/23 16:59

投稿

hacch
hacch

スコア15

test CHANGED
File without changes
test CHANGED
@@ -79,3 +79,11 @@
79
79
  としてみたのですが、それでは
80
80
 
81
81
  バーがあるx軸全体が反転の対象になってしまいました。
82
+
83
+
84
+
85
+
86
+
87
+ こちらに現在のソースコードの写真をアップしました。
88
+
89
+ https://d.kuku.lu/60e92a2e4