質問するログイン新規登録

質問編集履歴

2

2020/05/23 16:59

投稿

hacch
hacch

スコア15

title CHANGED
File without changes
body CHANGED
@@ -42,4 +42,147 @@
42
42
 
43
43
 
44
44
  こちらに現在のソースコードの写真をアップしました。
45
- https://d.kuku.lu/60e92a2e4
45
+ https://d.kuku.lu/60e92a2e4
46
+
47
+ ```Qt
48
+
49
+ #include "ofApp.h"
50
+ float fx; //長方形(枠)の中心のx座標
51
+ float fy; //長方形(枠)の中心のy座標
52
+ float fw; //長方形(枠)の幅
53
+ float fh; //長方形(枠)の高さ
54
+
55
+ float bx; //円の中心のx座標
56
+ float by; //円の中心のy座標
57
+ float radius; //円の半径
58
+
59
+
60
+ float rx; //パドルの中心のx座標
61
+ float ry; //パドルの中心のy座標
62
+ float rw; //パドルの幅
63
+ float rh; //パドルの高さ
64
+
65
+ float x_speed; //パドルのx移動速度
66
+ float y_speed; //パドルのy移動速度
67
+
68
+ float bx_speed; //円のx方向速度
69
+ float by_speed; //円のy方向速度
70
+
71
+
72
+
73
+ //--------------------------------------------------------------
74
+ void ofApp::setup(){
75
+ ofBackground(0, 0, 0); //背景を黒
76
+ ofSetCircleResolution(64); //円の解像度
77
+
78
+ //長方形の中心を描画位置にする
79
+ ofSetRectMode(OF_RECTMODE_CENTER);
80
+ ofSetFrameRate(30); //フレームレートの設定
81
+
82
+ fx = ofGetWidth()/2.0; //枠の描画位置 x座標
83
+ fy = ofGetHeight()/2.0; //枠の描画位置 y座標
84
+ fw = 900; //幅
85
+ fh = 570; //高さ
86
+ bx = 300; //円の描画位置 x座標
87
+ by = 300; //円の描画位置 y座標
88
+ bx_speed = 8; //円のx軸方向の移動速度
89
+ by_speed = 3; //円のy軸方向の移動速度
90
+ radius = 25; //円の半径
91
+
92
+ rx = ofGetWidth()/2; //パドルの初期位置 x座標
93
+ ry = ofGetHeight()/2; //パドルの初期位置 y座標
94
+ rw = 100; //パドルの幅
95
+ rh = 10; //パドルの高さ
96
+
97
+ x_speed = 50; //パドルのx移動速度
98
+ y_speed = 25; //パドルのy移動速度
99
+
100
+
101
+ }
102
+
103
+ //--------------------------------------------------------------
104
+ void ofApp::update(){
105
+ bx += bx_speed ; //x軸方向の移動
106
+ by += by_speed ; //y軸方向の移動
107
+
108
+ //円のx軸方向の範囲制限
109
+ if ((bx<fx-fw/2+radius)||
110
+
111
+ (bx>fx+fw/2-radius)){
112
+
113
+ bx_speed *= -1 ; //円のy軸方向の移動方向反転
114
+ }
115
+ //円のy軸方向の範囲制限
116
+ if ((by<fy-fh/2+radius)||
117
+
118
+ (by>fy+fh/2-radius)){
119
+
120
+ by_speed *= -1 ; //円のy軸方向の移動方向反転
121
+ }
122
+
123
+ //パドルのx軸方向の移動範囲制限
124
+ if(rx<fx-fw/2+rw/2){//パドル左端の制限
125
+ rx=fx-fw/2+rw/2;
126
+ }
127
+ if(rx>fx+fw/2-rw/2){//右端の制限
128
+ rx=fx+fw/2-rw/2;
129
+ }
130
+
131
+
132
+
133
+ //y軸方向の移動範囲制限
134
+ if(ry<fy-fh/2+rh/2){//パドル上の制限
135
+ ry=fy-fh/2+rh/2;
136
+ }
137
+ if(ry>fy+fh/2-rh/2){//パドル下の制限
138
+ ry=fy+fh/2-rh/2;
139
+ }
140
+
141
+
142
+ if(by+radius>ry){ //ここがわからないです。
143
+ by_speed*=-1;
144
+ }
145
+
146
+ }
147
+
148
+ //--------------------------------------------------------------
149
+ void ofApp::draw(){
150
+ ofNoFill();//塗りつぶしなし
151
+ ofSetLineWidth(4);//線の太さを4
152
+ ofSetColor(255,255,255);//白色に
153
+ ofDrawRectangle(fx,fy,fw,fh);//長方形を描く
154
+
155
+ ofFile();//塗りつぶしあり
156
+ ofSetColor(255,0,0);//赤色
157
+ ofDrawCircle(bx,by,radius);//円を描く
158
+
159
+ //パドルの描画
160
+ ofFile();
161
+ ofSetColor(255,255,255);//描画色 白
162
+ ofDrawRectangle(rx,ry,rw,rh);//パドルの描画
163
+
164
+
165
+ }
166
+
167
+ //--------------------------------------------------------------
168
+ void ofApp::keyPressed(int key){
169
+
170
+ //左矢印キー
171
+ if(key==OF_KEY_LEFT){
172
+ rx-=x_speed;
173
+ }
174
+ //右矢印キー
175
+ if(key==OF_KEY_RIGHT){
176
+ rx+=x_speed;
177
+ }
178
+ if(key==OF_KEY_UP){
179
+ ry-=y_speed;
180
+ }
181
+ if(key==OF_KEY_DOWN){
182
+ ry+=y_speed;
183
+ }
184
+ }
185
+ ```ここに言語を入力
186
+ コード
187
+ ```
188
+ ```

1

2020/05/23 16:59

投稿

hacch
hacch

スコア15

title CHANGED
File without changes
body CHANGED
@@ -38,4 +38,8 @@
38
38
  by_speed*=-1
39
39
  }
40
40
  としてみたのですが、それでは
41
- バーがあるx軸全体が反転の対象になってしまいました。
41
+ バーがあるx軸全体が反転の対象になってしまいました。
42
+
43
+
44
+ こちらに現在のソースコードの写真をアップしました。
45
+ https://d.kuku.lu/60e92a2e4