矢印キーでスプライトを動かす

Scratchでキャラを矢印キーで操作できるようにしたいとき、どんなふうにプログラミングしますか?
今回はそんなお話です。

「〇〇キーが押された時」ブロックを使うと…

とても簡単な方法として、「〇〇キーが押された時」ブロックを使う方法があります。

上向矢印キーを押すと、キャラが上に移動する

矢印キーは上下左右の4つありますから、それぞれの方向について用意すれば簡単に移動プログラムはできます。

今回はx座標、y座標の数値の増減で移動を制御しています。
「向き」と「◯歩動かす」で制御する方法もあります。

しかしこの方法は2つ問題がありまして。

一つ目は、動きに「引っ掛かり」が出てしまう、という点。
矢印キーを押すと「ウッ、ウー」といった感じで動いた直後一瞬止まって、それから動き出す。
「スーッ」って動いてほしいのに、なんだかギコギコしちゃうんです。

2つ目は、「斜め移動しない」点です。例えば、右と上を同時に押しても、右上には移動しないということです。斜め移動については、ゲームにより要不要が分かれますが、それにしてもハナからできないのはちょっとサビシイ。

「うっ!」って一度止まってから動く感じ

「ずっと」ブロックと「もし〜なら」を使ってスーっと!

矢印キーを押したらスーッと動くプログラムは、「ずっと」ブロックと「もし〜なら」ブロックを使います。

「ずっと」と「もし〜なら」

作り方は次の通り!

「スタートボタン」と、「ずっと」を設置

これから始まるプログラミング、結構多いですよね!

「ずっと」ブロックの中に、矢印キーの動きに関わるプログラムブロックを作ります。

「右」「左」のプログラム

まずは「右」から。

「もし」ブロックの条件部分に、「右向き矢印キーが押された」を入れる。
右方向はx座標が増える方向なので、「x座標を10ずつ変える」をいれる。
(「x座標を10にする」にしないように注意!)

まだ、「ずっと」ブロックの中に入れない。あとでまとめて入れるので。

次に「左」。「右」のプログラムを複製して作ると手間が省けます。

マウスだと、右クリックでメニューが出てきます。
複製を覚えると、プログラミングのスピードが上がります!

「左」は「右」のプログラムを2箇所変えるだけでできます。

  1. 「右向き矢印」を「左向き矢印」に変える
  2. 「10」を「-10」に変える
上と下、ちがいが分かる?

「上」「下」のプログラム

「右」「左」と同様に、「上」のプログラムも作ります。
「左」のプログラムを複製して、変更を加えます。

  1. 「左向き矢印」を「上向矢印」に変える
  2. 上下の移動はy座標なので、「y座標を10ずつ変える」ブロックをいれる
上下の移動はy座標の移動なので、y座標を変えるブロックにする

次に「下」を作ります。「上」を複製して、y座標の変化量を「-10」にします。

y座標の値が小さくなるほど、下に移動します。

ブロックを「ずっと」の中に入れる

出来上がったブロックを「ずっと」の中に入れて、完成です!

これが、

こう!

試しに動かしてみよう!

スタートボタンを押して、動かしてみよう!

きっと、ギコギコせずに「スゥーッ!」と動いてくれるはずです。

スゥーッ!

うまくいかない時は

書いている通りにやってもうまく動いてくれない時は、どこかまちがっている可能性があります。
プログラムをもう一度見直してみると解決策が見つかるかも!?

ちなみに、よくある間違いとしては、

  • 数字が「全角」になっている。(Scratchは値がほしいところが全角だと、0と同じ扱いになります)
  • 「x座標(y座標)を10ずつ変える」のところを「x座標(y座標)を10にする」にしてしまっている
「-10」の部分。左が「半角」、右が「全角」。
似ているけど、意味が全然ちがうから、注意!
今回は左のブロックを使いました。

などが挙げられます。確認してみましょう!

おわりに

ゲームでキャラクターを操作したいとき、今回のコード(プログラミング)はよく使うものだと思います。ぜひ色々なゲームに取り入れてみてください!

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