トピック
shoum shoum0403
壁に当たると跳ね返る
1そうだね
未プレイ
返信[1]
親投稿
おちゃめ ochame_nako
ブロックや壁が画面に対して水平、垂直のもののみ(つまり、ブロックの形状がすべて矩形)であるならば実はすごく簡単です。 ボールのX方向の移動量、Y方向の移動量は縦方向の壁やブロックの左右面に当たった場合はX方向の移動量の正負が反転して横方向の壁やブロックの上下面に当たった場合にはY方向の移動量が反転します。 具体的に言えば、ボールの座標がBX、BY、移動量がDX、DYとした時にボールの移動はBX=BX+DX:BY=BY+DYとなりますが、ブロックの左右面に当たった場合にはDX=-DXとなり、上下面に当たった場合にはDY=-DYになるということです。 とはいえ、実際に作るとなると難しいのは当たり判定の方ではないかと思います。
5そうだね
プレイ済み
返信[2]
親投稿
シュナ S_S_Schneider
おちゃめさんの仰る通り ブロックごとの 当たり判定の管理のほうが 考えることが多いですね。 まずは ボールが 画面外に 出ずに バウンドする処理から 作るといいです。 コンソール表示でのプログラムですが 公式初心者講座に 似たような仕組みの説明が あったはず。
0そうだね
プレイ済み
返信[3]
親投稿
shoum shoum0403
やっぱ三角関数を使うんですねー 実際にXとYの符号を逆転してみたんです。理想通りの動きになりました
0そうだね
未プレイ