さあC言語(DXライブラリ)を使って超繊細、美麗、箱庭シューティングゲームを作ってみましょう 超初心者向けです 0.367
ゲーム画面ではy軸は下方向なので2つの四角形が重なっているときの条件は通常のxy平面のときとはことなってきます
ゲーム画面ではy軸は下方向なので2つの四角形が重なっているときの条件は通常のxy平面のときとはことなってきます
ソーラー「ゲーム画面上で
自機と敵機がぶつかった時の当たり判定は
自機の画像データと敵機の画像データが重なりあったときではなく
自機の画像データの中の四角形の領域
と
敵機の画像データの中の四角形の領域
が重なり合った時に行った方がいいっていうのがわかったね
というわけで
通常のxy平面上での
自機の画像データの中の四角形の領域
と
敵機の画像データの中の四角形の領域
の重なっている条件を求めてみようよ」
マックス「ようは四角形と四角形の重なっている条件をもとめたいんだろう
今までと考え方はいっしょじゃないか
ふはは
こたえはもうでているではないか
通常のxy平面で
自機の画像データの中の四角形の領域が
(x1,y1)
(x1,y2)
(x2,y2)
(x2,y1)
の4つの点を頂点とする
四角形の領域に描かれ
敵の画像データの中の四角形の領域が
(x3,y3)
(x3,y4)
(x4,y4)
(x4,y3)
の4つの点を頂点とする
四角形の領域に描かれているとするだろう
自機の画像データの中の四角形の領域と敵機の画像データの中の四角形の領域
すなわち
xy平面上に描かれた2つの四角形が
重なっている条件は
x1<x4
かつ
x3<x2
かつ
y1<y4
かつ
y3<y2
じゃないか😃」
ソーラー「ピンポ〜ン
正解です
その様子は
下の図をご覧ください
👇
https://solalion.blogspot.com/2021/11/blog-post_11.html
ソーラー「ですが
ゲーム画面では
x軸上の値は右へ行けばいくほど値が大きくなりますが
y軸上の値は下へ行けばいくほどおおきくなるという
ちょっと特殊なxy平面なんです
このxy平面上で
自機の画像データの中の四角形の領域が
(x1,y1)
(x1,y2)
(x2,y2)
(x2,y1)
の4つの点を頂点とする
四角形の領域に描かれ
敵の画像データの中の四角形の領域が
(x3,y3)
(x3,y4)
(x4,y4)
(x4,y3)
の4つの点を頂点とする
四角形の領域に描かれている場合
xy平面上に描かれた2つの四角形が
重なっている条件は
x1<x4
かつ
x3<x2
かつ
y4<y1
かつ
y2<y3
となります」
solarplexuss「どういうこと?
y1<y4
かつ
y3<y2
の部分が
y4<y1
かつ
y2<y3
になったみたいだけど
なんで?」
ソーラー「まずは
以下の図をご覧ください
👇
図1
https://solalion.blogspot.com/2021/11/blog-post_13.html
👇
図2
https://solalion.blogspot.com/2021/11/blog-post_73.html
この図を見ると
y4<y2<y3<y1
となっているのがわかります
自機の画像データの中の四角形の領域が
(x1,y1)
(x1,y2)
(x2,y2)
(x2,y1)
の4つの点を頂点とする
四角形の領域に描かれ
敵の画像データの中の四角形の領域が
(x3,y3)
(x3,y4)
(x4,y4)
(x4,y3)
の4つの点を頂点とする
四角形の領域に描かれている場合
xy平面上に描かれたこれら2つの四角形が
重なっている条件は
以前のエピソードでも考察したように
線分x1x2と線分x3x4が重なっている条件
と
線分y2y1と線分y4y3が重なっている条件
の2つの条件から
なりたっています
線分x1x2と線分x3x4が重なっている条件は
x1<x4
かつ
x3<x2
で表され
線分y2y1と線分y4y3が重なっている条件は
y4<y1
かつ
y2<y3
で表されます
だから
xy平面上に描かれたこれら2つの四角形が
重なっている条件は
x1<x4
かつ
x3<x2
かつ
y4<y1
かつ
y2<y3
となります」
solarplexuss「ほええ
xy平面上に描かれたこれら2つの四角形が
重なっている条件は
線分x1x2と線分x3x4が重なっている条件
と
線分y2y1と線分y4y3が重なっている条件
の
2つの条件から成り立っているか・・・・・
なんて華麗なんだ
線分y2y1と線分y4y3が重なっている条件
は
y4<y1
かつ
y2<y3
で表されるんだね
おまけ
y1<y4
かつ
y3<y2
という状態はこの図をみてもありえないということがわかります
👇
https://solalion.blogspot.com/2021/11/blog-post_47.html
もし
y1<y4
なら
必ず
y3>y2
になり
y3<y2
なら
必ず
y1>y4
となります
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます