Scratchでキャラを矢印キーで操作できるようにしたいとき、どんなふうにプログラミングしますか?
今回はそんなお話です。
「〇〇キーが押された時」ブロックを使うと…
とても簡単な方法として、「〇〇キーが押された時」ブロックを使う方法があります。
矢印キーは上下左右の4つありますから、それぞれの方向について用意すれば簡単に移動プログラムはできます。
しかしこの方法は2つ問題がありまして。
一つ目は、動きに「引っ掛かり」が出てしまう、という点。
矢印キーを押すと「ウッ、ウー」といった感じで動いた直後一瞬止まって、それから動き出す。
「スーッ」って動いてほしいのに、なんだかギコギコしちゃうんです。
2つ目は、「斜め移動しない」点です。例えば、右と上を同時に押しても、右上には移動しないということです。斜め移動については、ゲームにより要不要が分かれますが、それにしてもハナからできないのはちょっとサビシイ。
「ずっと」ブロックと「もし〜なら」を使ってスーっと!
矢印キーを押したらスーッと動くプログラムは、「ずっと」ブロックと「もし〜なら」ブロックを使います。
作り方は次の通り!
「スタートボタン」と、「ずっと」を設置
「ずっと」ブロックの中に、矢印キーの動きに関わるプログラムブロックを作ります。
「右」「左」のプログラム
まずは「右」から。
「もし」ブロックの条件部分に、「右向き矢印キーが押された」を入れる。
右方向はx座標が増える方向なので、「x座標を10ずつ変える」をいれる。
(「x座標を10にする」にしないように注意!)
次に「左」。「右」のプログラムを複製して作ると手間が省けます。
「左」は「右」のプログラムを2箇所変えるだけでできます。
- 「右向き矢印」を「左向き矢印」に変える
- 「10」を「-10」に変える
「上」「下」のプログラム
「右」「左」と同様に、「上」のプログラムも作ります。
「左」のプログラムを複製して、変更を加えます。
- 「左向き矢印」を「上向矢印」に変える
- 上下の移動はy座標なので、「y座標を10ずつ変える」ブロックをいれる
次に「下」を作ります。「上」を複製して、y座標の変化量を「-10」にします。
ブロックを「ずっと」の中に入れる
出来上がったブロックを「ずっと」の中に入れて、完成です!
→
試しに動かしてみよう!
スタートボタンを押して、動かしてみよう!
きっと、ギコギコせずに「スゥーッ!」と動いてくれるはずです。
うまくいかない時は
書いている通りにやってもうまく動いてくれない時は、どこかまちがっている可能性があります。
プログラムをもう一度見直してみると解決策が見つかるかも!?
ちなみに、よくある間違いとしては、
- 数字が「全角」になっている。(Scratchは値がほしいところが全角だと、0と同じ扱いになります)
- 「x座標(y座標)を10ずつ変える」のところを「x座標(y座標)を10にする」にしてしまっている
などが挙げられます。確認してみましょう!
おわりに
ゲームでキャラクターを操作したいとき、今回のコード(プログラミング)はよく使うものだと思います。ぜひ色々なゲームに取り入れてみてください!