回答編集履歴

1

座標の計算が一部おかしかったので修正

2021/09/06 14:28

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
 
82
82
 
83
- ボールの初期位置は`ball.goto(5, 5)`のように、x座標とy座標をカンマ区切りで指定します。元のコードでは(5, 5)に設定しようとして失敗していますが、パドルで受け止め損ねて再開するときは(0, 0)に設定しているので、ここでは(0, 0)に揃えてみました。
83
+ ボールの初期位置は`ball.goto(5, 5)`のように、x座標とy座標をカンマ区切りで指定します。元のコードでは(5, 5)に設定しようとして(カンマではなくドットを書いて)失敗していますが、パドルで受け止め損ねて再開するときは(0, 0)に設定しているので、ここでは(0, 0)に揃えてみました。
84
84
 
85
85
 
86
86
 
@@ -134,39 +134,7 @@
134
134
 
135
135
 
136
136
 
137
- ボールのx座標を得る`ball.xcor()`や、y 座標を得る`ball.ycor()`には引数を指定しません。それらの返り値に対して、`ballxdirection`や`ballydirection`を加算してください。
137
+ ボールのx座標を得る`ball.xcor()`や、y座標を得る`ball.ycor()`には引数を指定しません。それらの返り値に対して、`ballxdirection`や`ballydirection`を加算してください。
138
-
139
-
140
-
141
- ### 画面の上下端でボールが跳ねる処理
142
-
143
- ```diff
144
-
145
- - if ball.ycor() > 290:
146
-
147
- - ball.sety(290)
148
-
149
- + if ball.ycor() > 280:
150
-
151
- + ball.sety(280)
152
-
153
- ballydirection = ballydirection * -1
154
-
155
- - if ball.ycor() < -290:
156
-
157
- - ball.sety(-290)
158
-
159
- + if ball.ycor() < -280:
160
-
161
- + ball.sety(-280)
162
-
163
- ballydirection = ballydirection * -1
164
-
165
- ```
166
-
167
-
168
-
169
- ボールの半径が10ピクセル(直径は20ピクセル)、画面の高さが600ピクセルなので、概算で(-300, 300)の範囲と見なし、ボールの一部が画面からはみ出さないように、±280を比較対象としています。
170
138
 
171
139
 
172
140
 
@@ -176,7 +144,7 @@
176
144
 
177
145
  - if (ball.xcor()) < -390:
178
146
 
179
- + if ball.xcor() < -380:
147
+ + if ball.xcor() < -390:
180
148
 
181
149
  ball.goto(0, 0)
182
150
 
@@ -194,7 +162,7 @@
194
162
 
195
163
 
196
164
 
197
- + if ball.xcor() > 380:
165
+ + if ball.xcor() > 390:
198
166
 
199
167
  + ball.goto(0, 0)
200
168
 
@@ -212,7 +180,7 @@
212
180
 
213
181
 
214
182
 
215
- ボールの半径が10ピクセル(直径は20ピクセル)、画面の幅が800ピクセルなので、概算で(-400, 400)の範囲と見なし、ボールの一部が画面からはみ出さないように、±380を比較対象としています。
183
+ ボールの半径が10ピクセル(直径は20ピクセル)、画面の幅が800ピクセルなので、概算で(-400, 400)の範囲と見なし、ボールの一部が画面からはみ出さないように、±390を比較対象としています。
216
184
 
217
185
 
218
186