【Scratch】すり抜けない、壊せる・壊せないブロックの作り方!色判定なし。

すり抜けない・壊せるブロックの作り方! ゲーム

どうもー!マミィです!

フリーランスプログラマーをしながら、「スクラッチプログラミング」・「マインクラフト」の真似したいと思う、役に立つ情報を中心に発信しています!

壊せるブロックが作りたいんだけど、キャラクターがブロックをすり抜けてしまうんだよね。

どうすればいいの??

マミィ
マミィ

「キャラクター」と「ブロック」の当たったときの判定部分の作り方を教えます!

よくある色判定は使いません!

1回で壊せるブロック
   ①1回で壊せるブロック
   ②4回当たると壊せるブロック
   ③壊せないブロック
  • 1回で壊せるブロック
  • 4回当たると壊せるブロック
  • 壊せないブロック

ちなみに、ブロックの上にものることができますがその解説は別の記事に書きます。

この記事を読むとわかること↓

  • キャラクターの「ジャンプ」とブロックを「すり抜けない」仕組みの作り方
  • 1回で壊せるブロックの作り方
  • 4回当たると壊せるブロックの作り方
  • 壊せないブロックの作り方

この記事を読むと、キャラクターとブロックがすり抜けしないブロック(3種類)が作れます!

先に作るときのポイントを言うと、キャラクターの高さ(y座標)とブロックの高さ(y座標)を使っています。

マミィ
マミィ

ブロックのどこに当たったかを色判定する方法もありますが、今回は座標を使った方法です。

座標を使うことで、どんな色のブロックでも使うことができます!

今回作った作品です↓※ブロックを壊すときだけ音がでます。

乗れるブロック、壊せるブロック、壊せないブロック

【スクラッチ】キャラクターの動かし方

上矢印キー:ジャンプ
左矢印キー:左に動く
右矢印キー:右に動く

キャラクターと背景は著作権フリー素材(CC0)を使っています。

素材のDL方法と取り込み方が知りたい人はこちらを参考にしてください。

クリアな音でゲームやプログラミングを楽しもう!

周りの音を遮断して、マイクラ音ブロック演奏に最適です。

※リモート授業・会議にも使える!

スポンサーリンク

キャラクターの「ジャンプ」とブロックを「すり抜けない」仕組みの作り方

今回使うスプライトは、キャラクターと、ブロック、背景画像のみ。

※ブロックは同じ画像を使いまわしています。

キャラクター
壊れるブロック
背景画像

※上のGIFファイルを、画像右クリックで保存できます。

動く画像(GIF)をスクラッチに取り込むと、1枚ずつ動きのコスチュームが自動で分かれます。

各スプライトの名前を、boy(キャラクター)、block-brown(茶色ブロック)、block-blue(青色ブロック)、block-purple(紫色ブロック)と名前をつけています。

キャラクターを地面の位置まで下にずっと動かす

①boyが画面の下に行かないように、地面の位置を決めておく

boyの位置をまず決めて、「地面のy座標」にboyの「y座標」を入れます。

ここでは、-130が入ります。

②決めた地面の位置より小さくなるまでキャラクターを下に移動させる

地面のy座標の位置まで、常にキャラクターを下に動かしています。

3つのブロック全部に触れていないときは以下のことをしています。

  1. 変数「ブロックに触れた」を0にして、ブロックに触れているのかどうかを変数に保存
  2. キャラクターが地面の位置に下がってくるまでy座標を-5ずつ変えていく。

これで、常に、ブロックに触れているのかをチェックして、地面の位置まで下がってくる重力の動きが再現できます。

ジャンプのときは、上に動かす量を大きくする

ジャンプをするように、上に動かしたいときは、下に降りて来る移動量の2倍(y座標を10ずつ変える)で増やせば上に向かっていきます。

1回の移動量は下に移動する量の2倍で繰り返す回数を多くすることで、ジャンプできる高さが変わります。

ブロックをすり抜けないようにするには、触れたときに上に動かすのをやめる

「ブロックに触れた」の変数の意味は、以下になります。

  • ブロックに触れた=0:触れていない
  • ブロックに触れた=1:触れた

ブロックに触れてないときにだけ、上に移動させています。

下からキャラクターがブロックに当たったときには、上に移動しないので、すり抜けることはありません。

1回で壊せるブロックの作り方

1回で壊せるブロック

下からブロックに1回あたると、ブロックが崩れます。この作り方です。

1回で壊せる茶色のブロックの判定部分

キャラクターのジャンプしている最中に、茶色ブロックに触ったのかを判定する部分をいれます。

触れたら、「崩れる」という命令を「茶色ブロック」に送ります。

キャラクターを上に動かす条件が、「ブロックに触れた」が0の時だけなので、1にすることで、キャラクターが上に動かないので、下に落ちてきます。

この動きで、ブロックにぶつかって弾かれたようにみせています。

茶色ブロック側では、崩れるコスチュームを用意しておきました。(9枚のブロックを崩れていく画像)

受け取った茶色ブロック側では、コスチュームを1〜9まで変えていきます。

だんだん崩れていくように見せることができます。

4回当たると壊せるブロックの作り方

3回当たると壊せるブロック

下からブロックに4回あたると、ブロックが崩れます。

少しずつブロック崩れていき、4回目で崩れるようにしています。

キャラクター側のブロックの判定は、茶色ブロックと同じです。

触れたかどうかを調べて、「ヒット」を青色ブロックに送ります。

キャラクターを上に動かす条件が、「ブロックに触れた」が0の時だけなので、1にすることで、キャラクターが上に動かないので、下に落ちてきます。

この動きで、ブロックにぶつかって弾かれたようにみせています。

青色ブロックも9枚の崩れていくコスチュームを用意しています。(block1〜block9)

当たるごとに、コスチュームを次のものにして、少しずつ崩れるブロックのコスチュームに変えます。

最後に崩れるblock4のコスチュームになったら、残りのコスチュームを少しずつ変えていき、崩れていくように見せます。

壊せないブロックの作り方

崩せないブロック

下から何度ジャンプして、当たっても壊せないブロックの作り方です。

キャラクター側の判定は、他のブロックと同じで、触れたかどうかです。

違うのは、「ブロックに触れた」を1にするだけで、ほかはなにもしません。

キャラクターを上に動かす条件が、「ブロックに触れた」が0の時だけなので、1にすることで、キャラクターが上に動かないので、下に落ちてきます。

この動きで、ブロックにぶつかって弾かれたようにみせています。

まとめ:すり抜けない、壊せる・壊せないブロックを作る方法

以上、すり抜けないブロックで、壊せたり、壊せなかったりするブロックの作る方法を解説してきました。

ポイントのおさらいです。

  • キャラクターは、地面の位置まで常に下に下がっていくようにy座標を変え続ける
  • ブロックが触れているかを常にチェックしておく
  • ジャンプしたときに、ブロックに触っていないときだけ、上に移動させる
  • 各ブロックに触れた時に、イベントを送り、ブロック側でコスチュームを変えて、崩れて見せる

実際に動かしたいというときは、スクラッチのページを参考にしてください。

乗れるブロック、壊せるブロック、壊せないブロック

マミィ
マミィ

ブロックに乗ることができる仕組みの解説は次回の記事でします!

プログラミングができる環境は整っていますか?

2025年の大学共通入試より、プログラミングが教科に追加されます。

時間のある今のうちに、楽しく・正しくプログラミングスキルを身に付けることは大切なことです。

子供にプログラミングをさせたいけど、親もできなくて教えられない!

どうしたらいいの??

  • パソコン操作が苦手(不慣れ)
  • 子供が使えるパソコンが家にない
  • 親がプログラミングの知識がなくて教えてあげられない

そんな悩みを解決してくれるプログラミングスクールをまとめました!

現役プログラマーが教える!3パターンから選ぶ子供のプログラミング教室!

そして、現場にいる立場から言わせてもらうと「システムを作る人」ではなくても、プログラミングの基礎を知っているかどうかで仕事にかなりの差がつきます。

無料体験などを利用して、プログラミングが向いているのかをお試ししましょう。

マミィ
マミィ

子供がプログラミングに興味があるのに、教えてあげられる人がいない!という子はほんとにもったいない!!と思います。

普通のプログラミングを自ら学ぶ「楽しい!」と思えるきっかけ作りをしてあげたいですね。

タイトルとURLをコピーしました