スタータープロジェクト

リミックス用プロジェクト

完成サンプル
サンプル
難易度

挑戦にゅうもんレベル

チャプター数
全5章
タグ

ドッコーン!玉と玉の衝突を処理するぞ|スイカゲーム②

ok-scratch
玉と玉が重なったかどうかを直線距離を使って算出し、重なっていれば衝突処理を行っていく。衝突は座標とスピードの計算が肝になってくるよ。この作品の最大の山場だから一緒にがんばろう!

Scratchでスイカゲームを作ろう!~衝突処理編~

こんにちは!Scratchでスイカゲームを作るときの「衝突」動画の要約を載せておくよ!ゲームの中で果物どうしがぶつかったときに、どうやって処理するのかを見ていこう!

①まずは距離を計算しよう!

ボールどうしがぶつかったかどうかを判断するには、直線距離重なりという2つの値を計算する必要があるんだ。

【直線距離の計算】
1. お互いの距離X = 相手のX座標 - 自分のX座標
2. お互いの距離Y = 相手のY座標 - 自分のY座標
3. 直線距離 = √(お互いの距離X² + お互いの距離Y²)

これはピタゴラスの定理を使った計算なんだ!小学校で習った三角形の斜めの辺を求める公式だよ。

②ぶつかったかどうかを判断しよう!

次に、重なりという値を計算して、プラスならぶつかっている、マイナスならぶつかっていないと判断するよ。

重なり = ((自分の半径 + 相手の半径) ÷ 直線距離 - 1) ÷ 2

③ぶつかった後はどう動く?

ぶつかったあとの動きは2つのステップで計算するよ:

  1. 座標の計算: ぶつかった瞬間、お互いが少しずつ離れる方向に移動
  2. スピードの計算: ぶつかった力で、それぞれのボールのスピードが変わる

特にスピードの計算は難しいから、コードをしっかりコピーしてね!

④ボールの見た目を整えよう

ボールの大きさに合わせて、コスチュームも変えると見栄えがよくなるよ!

コスチューム番号 = (半径 ÷ 5) - 2
ボールの大きさ = 半径 × 2

こうすると、半径が大きくなるにつれて、自動的にコスチュームも変わって、見た目も大きくなるんだ!

⑤ボールを転がそう!

ボールが転がるような動きを実装するには:

X座標 = X座標 + スピードX
角度 = 角度 - 90°

これで、ボールが転がりながら移動する感じになるよ!

⑥壁にぶつかったときの反発

最後に、画面の端に触れたときに少し跳ね返るようにしよう:

スピードX = スピードX × 反発力 × (-1)

反発力は0.2くらいがちょうどいいかな。これで壁に当たったとき、ちょっと跳ね返るようになるよ!


今回は衝突処理という、ゲーム作りの中でも難しい部分をやったね!でも大丈夫、一つずつ順番にコードを作っていけば、きっとできるよ。次回は雲から弾を落とす機能を作って、もっとスイカゲームらしくしていくよ!頑張ろう!

スクラッチャーからのコメント

yuppon3131 yuppon3131 2024-09-01
ピタゴラスの定理を忘れた時に毎回スイカゲームの作り方講座第2回の動画を見て思い出してます( ̄ー ̄)bグッ!
ok-scratch ok-scratch 2024-09-02
@yuppon3131 おお!あの動画を観てもらえるなんて、嬉しいです。ピタゴラスはまじゲーム作りで色々役に立つので、時代を越えてスゴイ。まさかこんなふうに役立つとは予想していなかったことでしょう。
ok-scratch ok-scratch 2024-04-14
@kuripa-kun ご連絡ありがとうございます!動画は見れますか?この記事には動画しかないです。
kuripa-kun kuripa-kun 2024-04-14
@ok-scratch ありがとうございます 見れました 読み込みが遅かったみたいです
ok-scratch ok-scratch 2024-04-14
@kuripa-kun それは、サイト側の問題ですね、すいません。観れてよかったです(*^^*)
kuripa-kun kuripa-kun 2024-04-14
@ok-scratch わざわざ見てくれてありがとうございました!
ojiro_oshiba ojiro_oshiba 2024-02-06
あの... 動画参考にしてやってみてるんですが、なぜか横に行ってしまって...
ok-scratch ok-scratch 2024-02-06
@ojiro_oshiba コメントありがとうございます!横というのは、玉が下に落ちないで横に行く感じですか?おそらくY座標にすべきところがX座標になってるのかなぁと思うのですがどうでしょうか
ojiro_oshiba ojiro_oshiba 2024-02-06
@ok-scratch ありがとうございます!いつもお世話になってます!
ok-scratch ok-scratch 2024-02-06
@ojiro_oshiba いえいえ〜、直るといいのだけど。ふぁいと( ´∀`)bグッ!
hukkana01 hukkana01 2024-01-12
2つ変なところあるんですけどなんか4個・6個くだものを同じ所に重ねるとバグる & くだものばらまくと物理演算がおかしいんですけど合ってますか? https://scratch.mit.edu/projects/948900530/
ok-scratch ok-scratch 2024-01-12
@hukkana01 同じところに重ねると挙動が変、っていうのは第何回か分からないけど修正する動画があるので、いまのところOKです!ボヨンボヨンなります……。もう1つのは見てみますね!
ok-scratch ok-scratch 2024-01-12
@hukkana01 ちなみに「ばらまくと物理演算がおかしい」と感じたのはどういう挙動でしょうか。
hukkana01 hukkana01 2024-01-12
@ok-scratch そうですね。ボヨンって感じな気がします  勝手に箱の上にバン!ってなったりします
ok-scratch ok-scratch 2024-01-13
@hukkana01 ブロック定義「_衝突後のスピードを計算する」の下から3つ目の演算に誤りがありました。変更前「_お互いの距離Y(◯こ分) * _自分が生む力Y」これを次のように直してください。変更後「_お互いの距離X(◯こ分) * _自分が生む力Y」これでポヨンしなくなるかなと(*^^*)
hukkana01 hukkana01 2024-01-13
@ok-scratch 実は小3です (ここだけの話です、内緒)
hukkana01 hukkana01 2024-01-13
@ok-scratch まぁ せみまるさんもでもね、「そうやって子供たちはSNSを学んでいくの 社会の入り口の第一歩なのスクラッチは」って言ってたから大丈夫じゃない?(棒)
hukkana01 hukkana01 2024-01-13
@ok-scratch あ、ちなみに直りました、ありがとうございます!
ok-scratch ok-scratch 2024-01-14
@hukkana01 直ってよかった!そうだね、まぁそれ以上深い個人情報みたいなのは言うべきではないと思う。リスクとかってよりも、言っても良いことないし。引き続きがんばってね(*^^*)
hukkana01 hukkana01 2024-01-14
@ok-scratch はい!
hukkana01 hukkana01 2024-01-10
新動画!!!(6分前)
ok-scratch ok-scratch 2024-01-10
@hukkana01 早い!チェックありがとうございます♪スイカゲームはメニュー画面まで作り込む予定なり。
hukkana01 hukkana01 2024-01-10
@ok-scratch 途中まで作ったんですけどなんか進化の定義を実行するとホラーのようにバグりますwww https://scratch.mit.edu/projects/948900530/ 違うところがあったら教えてください
ok-scratch ok-scratch 2024-01-10
@hukkana01 ホントですね、ホラーですね(笑)ブロック定義「玉同士の関係を更新する」の最後に余計な「進化する」ブロックがくっついちゃってます。これ取ればいけるかなと!ファイト(*^^*)
hukkana01 hukkana01 2024-01-11
@ok-scratch 本当だ直りました ありがとうございます!
hukkana01 hukkana01 2024-01-11
@ok-scratch 本当にすみません2つ変なところあるんですけどなんか4個・6個くだものを同じ所に重ねるとバグる & くだものばらまくと物理演算がおかしいんですけど合ってますか?
maple_tayama maple_tayama 2023-12-20
これ間違っているところありますか?https://scratch.mit.edu/projects/938356882/
ok-scratch ok-scratch 2023-12-20
@maple_tayama パッと見ですが良さそう。このあと魔の衝突処理ですね……。
maple_tayama maple_tayama 2023-12-20
@ok-scratch ありがとうございます(^^♪

スクラッチゲーム攻略

スクラッチゲーム一覧

    • 厳選されたスクラッチ人気作品リストがレビュー付きで楽しめます
      世界中のヒットゲームをスクラッチで遊ぼう
      趣味に関するスクラッチ作品例
      勉強になるスクラッチ作品