・当たり判定(「~に触れた」)
・背景/スプライトの追加/コスチューム
ねこがひよこのお家に遊びに来たイメージで作っています。
ひよこのところまで行くと、あいさつをしてくれますね。
○背景とスプライトの追加
今回の作品では、背景を設定します。
スクラッチでは、あらかじめ多くの背景が用意されているので、今回はそこから選んでいきます。
右下のほうの「ステージ」と書いてある欄の、のマークをクリックしてください。
すると、背景の一覧が表示されるので、「Bedroom 1」を選んでみましょう!
↓↓選択後
無事、後ろに「Bedroom 1」の背景が表示されましたでしょうか?
ねこは今回お客さんなので、ねこの位置を左下に変えてみましょう。
位置は、スプライトをドラッグ&ドロップするか座標の数値を変えると移動させることができます。
だいたいの位置をドラッグ&ドロップで決めて、座標の数字で微調整すると良いと思います。
X=-170、Y=-110に設定してみました。(スプライト名も「ねこ」に変えてあります)
位置を決めたら、初期化の設定も合わせてしておきましょう。(下図)
背景と同じように、スクラッチではあらかじめ多くのスプライト画像が用意されています。




真ん中の、ブロックを配置する欄の上部のイラストも、ひよこに変わっているのに気づきましたか?
ブロックに別のスプライト名の記載などが無い場合は、
ひよこに関するコードを使ったことになる、というわけです。
下の図のように、(スプライト名=ひよこ、X=30、Y=-15、向き=-90°、回転を左右のみ)と設定しました。


○矢印キーでスプライトを動かす方法
まず、スプライト欄でねこをクリックして、スプライトの選択を切り替えましょう。
そして、必要なブロックを配置していくわけですが、
今回も、矢印キーを押していると、ねこには何度も動いてほしいですよね?
そこで、まずは「ずっと」のブロックを配置しましょう。
「ずっと」の中に、矢印キーを押したら動くコードを作っていきますよ。

もし何かが起きたなら、ということを表現したいときに必ず思い浮かべてほしいのが、
「もし~なら」ブロックです。


もし右向き矢印キーが押されたなら、ねこが右に移動する(=X座標を10増やす)ようにして、
「ずっと」ブロックの中に配置します。
プルダウンから使いたいキーを選ぶことができますよ。



(マイナスの有無、XとYの違いに注意してください。座標は半角入力です。)
うまくいきましたでしょうか?
○当たり判定の方法(「~に触れたとき」)
当たり判定とは、ゲームの中でキャラクターや物体同士がぶつかったかどうかの判定のことです。


ここでも先ほどのブロック、「もし~なら」の出番になるのですが、、、


もしねこに触れたなら、「いらっしゃい!」と言い、
そうでなければ(→つまり、離れているなら)「」と言う、
ことが実現できます。
「~と言う」ブロックのセリフ部分を空白にすると、スプライトが言っているセリフを消すことができますので、覚えておいてください!
「~キーが押されたとき」と同様に、「調べる」欄の中にあります。

ひよこがねこに触れたときだけ「いらっしゃい!」と言うようになりましたか?
セリフと同時にひよこの口が開くようにしましょう。
○コスチュームについて
ひよこのスプライトを選択した状態のまま、
画面左上のコスチュームのタブをクリックしてください。
以下のような画面になりましたでしょうか?
実は、ひよこのスプライトには、
あらかじめ3種類の画像(コスチューム)がセットになっています。
今表示されているChick-a以外に、
口を開いたChick-b、何かをついばんでいるChick-cがありますね。
ねこに触れているときはChick-bに、離れたらChick-aのコスチュームに戻るように、ブロックを加えましょう。
「コード」タブに戻り、「見た目」から「コスチュームを~にする」のブロックを見つけて、
以下のように配置します。
これで、セリフと同時にひよこの口が開くようになりました!
今回は少々ボリュームがありましたが、
プロジェクトは以上で完成です。お疲れ様でした。
矢印キーでのスプライトの動き、スプライトに触れた時の当たり判定について、
仕組みを理解できましたでしょうか??
次回は、ねこがマウスのポインター(カーソル)についていく動きを作ってみたいと思います!
今回もありがとうございました。
→次のチャプター <導入編>2-4 ボールをよけるゲームを作ろう! に進む
※なお今回は、当たり判定の部分について、
簡単に「もし~なら、でなければ」のブロックのみで基本構成をしていますが、
これだけだと、実は、ねこに触れている間はずっと、
何度も「いらっしゃい!と言う」「コスチュームをchick-bにする」の命令が実行されてしまっています。(離れている間も同様)
何度も実行すると支障があるケース(効果音を鳴らす、など)場合は特に、
ブロック「~まで待つ」を活用もしくは併用する必要があります。
参考までに、今回のひよこのスクリプトを「~まで待つ」ブロックに置き換えたものを載せておきます。
(現時点ですぐに理解しなくても大丈夫です。詳細は改めて別記事で解説したいと思います。)