レッツ!スクラッチ (6) インベーダーゲームをつくろう ― プレイヤーを左右に動かそう
いよいよ、プレイヤーを動かせるようにしていきます。
キーボードの右矢印キーを押したら右へ、左矢印キーを押したら左に動くようにしましょう。
「x座標を0、y座標を-150にする」ブロックの下に、「ずっと」ブロックをくっつけます。
「ずっと」ブロックとは、ブロックの中に置いたブロックを「ずっと」実行し続ける、というブロックです。
「ずっと」ブロックは、ブロックパレットの「制御」の中にあります。
次に、「制御」の中にある、「もし なら」ブロックを「ずっと」ブロックの中に合体させます。
「調べる」から、「スペースキーが押された」ブロックを、「もし なら」の文字の間の空間に合体させます。
「スペース」を「右向き矢印」に変えます。
「動き」から「x座標を10ずつ変える」を選んで、「もし なら」ブロックの中に合体させます。
この場合の「もし なら」ブロックの意味は、
「もし [ 右向き矢印が押された ] なら、 [ x座標を10ずつ変える ] 」ということになります。
これで右に動くようになりました。
試しに、キーボードの右向き矢印キーを押してみてください。
ロケットが右に動きましたか?
しかし、このままだとロケットが右に行き過ぎて、外にはみだしてしまっていますよね?
これではちょっとおかしいので、ロケット全体が外に出ないようにしましょう。
「もし なら」ブロックから、「右向き矢印キーが押された」ブロックをいったん出します。
「演算」から、「 かつ 」ブロックを選び、「もし なら」ブロックの空いた穴に入れます。
「 かつ 」の左側の穴に、「右向き矢印キーが押された」ブロックを入れます。
「演算」から、「 <50 」ブロックを選び、「右向き矢印キーが押された かつ 」ブロックの右側の穴に入れます。
ステージペイン内のロケットをマウスで右側に動かしてみると、ロケット全体が隠れない位置は、だいたいx座標が200の位置だということがわかります。
「 <50 」の数字を200にします。
「動き」から、「x座標」ブロックを選び、「 <200」ブロックの左側の穴に入れます。
実際に、キーボードの右矢印キーを押してみてください。
ロケットが右側に動いていき、画面の端で止まったでしょうか?
ここでいったんおさらいです。
今つくった「もし なら」ブロックの中身の意味は、
「もし、右向き矢印キーが押されて、かつ、ロケットのx座標が200よりも小さい場合は、x座標を10ずつ増やす」
という意味になります。
今度は、同じように左側に動かせるようにします。
右側のときと同じようにして、つくってみてください。
以下のようになるはずです。
これで、ロケットを左右に動かすことができるようになりました。
ポイントは、左に動かす場合には、x座標は「-10」ずつ動くということです。
また、ロケットが画面からはみ出さない左端の位置は、だいたいx座標が「-200」の位置です。
次回はロケットから弾を発射します。
→「レッツ!スクラッチ」コンテンツリスト
関連記事