Scratchで はじめようゲームプログラミング
11.「玉をやり過ごす」を作ろう②
[ 「玉をやり過ごす」を作ろう① ] の続きです。
今回、はじめてスプライトエディタを使う人もいると思います。
エディタに慣れないと、思ったように絵が描けません。
ですので絵を描く練習をおすすめします。
新しくスプライトを追加して練習するのもいいですし、練習用のプロジェクトを作ってもいいでしょう。
一度だけでなく時々でも描いて、自分の絵をコレクションするのもいいと思います。
別のゲームで使うこともあるかもしれません。
壁を動かそう
壁として作ったスプライトを動かします。
3つの四角は1つのスプライトに描いたものなので、プログラムも1つになります。
コードのタブをクリックしましょう。
入力イベントを作っていきます。
スペースキーが押されたときを持ってきます。
制御からもし〜ならを持ってきます。
演算から◯=◯を持ってきます。
動きからx座標を持ってきます。
右辺には 0 を入れて、x座標が 0 かどうかを調べます。
1秒でx座標を0に、y座標を0に変更するを持ってきます。
移動時間は 0.3 秒にします。
上のブロックのx座標のみ 50 に設定してあとは 0 にします。
x座標が 0 のとき、0.3 秒で座標 50 の位置へ移動させます。
そして、x座標が 50 のときは座標を 0 の位置へ戻します。
これで、行ったり来たりするだけの動きになります。
スペースキーをゆっくり何回か押してみてください。
壁(3つの四角)のスプライトは下図のように動きます。
上手くいかない時は、スプライトの座標は 0,0 になっているか、絵の位置は正しく描かれているか前のページに戻って確認してください。
クリック(タッチ)にも対応しよう
スペースキーで遊べるようになりました。
でもこれだと、スマホやタブレットでは遊べません。
キーボードのないデバイスでも遊べるようにしたいと思います。
このゲームは1つのキーで四角を左右に動かすだけです。
これを画面をクリック(タッチ)しても動くように改造します。
ステージ画面全体から入力イベントを受けたい時は、ステージにプログラムを作ります。
ステージをクリックしたら、まず
イベントからステージが押されたときを持ってきます。
同じくイベントからメッセージ1を送るを持ってきます。
これでステージ画面をマウスでクリックすれば「メッセージ1」が送られます。
注意しなければいけないのは、3つの四角をクリックしたとき「メッセージ1」は送られません。
この問題を解決したいときは、いま作ったプログラムを壁スプライトにも用意すればOKです。
イベントメッセージを受け取る仕組みを作ります。
壁スプライトを選択します。
イベントからメッセージ1を受け取ったときを持ってきます。
まず、四角を動かすプログラムをメッセージ1を受け取ったときの下へ移動します。
これでメッセージで四角を動かせるようになりました。
次にメッセージ1を送るをスペースキーが押されたときの下に持ってきます。
作業が終わったら実行して、スペースキーを押したりステージ画面をクリックして、壁スプライトの動きを確認しましょう。
玉を発生させよう
落ちてくる玉を作ります。
絵は Scratch に用意されているものを使います。
スプライトを選ぶをクリックして新しいスプライトを用意します。
Ball をクリックします。
ステージの画面を見ると黄色い玉が表示されています。
スプライト一覧にも追加されています。
イベントから旗が押されたときを持ってきます。
見た目から大きさを100%にするを持ってきます。
サイズを 30 %に変更しましょう。
制御から10回繰り返すを持ってきます。
ここでは発生させる玉の数だけ指定します。
20 回繰り返すに変更します。
玉は6つの位置からランダムに発生させます。
そのため玉を作るとき、発生させたい座標の計算をする必要があります。
動きからx座標を0にするを持ってきます。
演算から3つのブロックを用意します。
1から10までの乱数、◯*◯(掛け算)◯+◯(足し算)
を並べておきます。
0 から 5 までの乱数に 50 を掛けて -130 を足します。
掛けている 50 は玉の間隔です。壁の絵の間隔に合わせています。
ステージの中心座標は 0,0 なので -130 することで左に寄せています。
この計算式をx座標を0にするの中に入れてください。
つづいて、制御から自分自身のクローンを作るを持ってきます。
実行してステージ画面を確認してください。
下図のようになっていればOKです。
ここ重要ポイントです。
玉の間隔が壁(水色の四角)と同じかどうか確認しましょう。
違うのであれば、玉または壁の間隔を調整して同じにします。
玉をステージの上から発生させます。
動きからy座標を0にするを持ってきます。
座標は 180 にします。
実行すると玉がステージ上部に表示されます。
玉を移動させよう
玉の移動処理を作ります。
制御からクローンされたときを持ってきます。
制御から10回繰り返すを持ってきます。
回数は 68 にします。理由はのちほど。
動きからy座標を10ずつ変えるを持ってきます。
値は -5 にします。
-5 は玉の移動速度です。それを 68 回繰り返すと
-5 * 68 = 340
ステージの縦のサイズが 360 ドットなので、ステージの上から下まで玉が移動することになります。
あっ、正確にはちょっと短いのでピンクの台座の途中で止まります。
次回に続きます。