タイトル_Scratch移動


Scrachのプロジェクト作りで基本[きほん]となるのは
やっぱり移動[いどう]ですよね。

今回はゲーム作りではなく、いろいろなスプライトの動かし方を
紹介[しょうかい]したいと思います。


↓↓続きを読む↓↓ をご覧ください 
 

Scratchのいろんな移動[いどう]方法[ほうほう]まとめ



いろんなヨコ移動[いどう]

キホンのヨコ移動[いどう]

まずは一番簡単[かんたん]なヨコ移動[いどう]です。Scratchのワークショップとかでよくみますよね。
WS0497
 
ネコが左右にウロウロするスクリプトです。
回転方法[ほうほう]を「左右のみ」にしておかないと
左を向いたときにネコがひっくり返るので、そこだけ注意です。


はしについてほしくない時

指定の範囲[はんい]でウロウロしてほしい時や、向きをかえたくない時はこんな感じです。 
WS0498
「○秒でx座標[ざひょう]を○に、y座標[ざひょう]を○に[]える」のブロックをつかいます。
まっすぐヨコに移動[いどう]させたい時は
座標[ざひょう][]えずに、x座標[ざひょう]だけを[]えるようにします。 

[ぎゃく]に、タテ方向にウロウロさせたい時は
座標[ざひょう][]えずに、y座標[ざひょう]だけをかえるようにすればOKです。 


[]ているブロックのなかに「x座標[ざひょう]を○、y座標[ざひょう]を○にする」のブロックが
ありますが、移動[いどう]のしかたはまったく[ちが]うので注意です。
WS0499


ふわふわ動いてほしい時

オバケなどのキャラクターで、ふわふわしてほしい時がありますよね。
そんなときは2つのスクリプトを組み合わせるとカンタンです。
WS0500
 
Scratchはこのように、別々[べつべつ]のスクリプトを同時に動かすことができるので
片方[かたほう]のスクリプトがタテ方向の移動[いどう]担当[たんとう]
もう片方[かたほう]がヨコ方向の移動[いどう]担当[たんとう]すれば
ふわふわした移動[いどう]もカンタンに作ることができます。



座標[ざひょう]を使って左から右にうごく

「10歩動かす」を使わずに座標[ざひょう]で動かしたい時はこんな感じ
ヨコ方向に動かしたい時はx座標[ざひょう]をかえます。
右方向がプラス、左方向がマイナスです。
WS0501
 
右はしについたら消えるようにしてみました。
このとき「x座標[ざひょう]>240」となっていますね
「もし[はした][]れたなら」としたいところですが
この「[はし]」というのがくせもので、登場する左端[ひだりはし]でも反応[はんのう]してしまうので
バグを[ふせ]ぐためにも、座標[ざひょう]判定[はんてい]したほうが無難[ぶなん]かもしれません。

WS0502
バグといえば、間違[まちが]いやすいこの二つのブロックにも注意です。
「x座標[ざひょう]を10ずつ[]える」ブロックはだんだん動くブロックで
「x座標[ざひょう]を0にする」ブロックは、瞬間[しゅんかん]移動[いどう]のブロックです。



リンゴをいろんな方法[ほうほう]で落としてみよう

座標[ざひょう]を使って上から下に動かす

下に落とすプログラムは、「10歩動かす」よりも「y座標[ざひょう]」のほうが
よく使われています。 

WS0503

座標[ざひょう]をつかって左から右に動くプログラムと[]ていますね。
でもコピーして流用すると間違[まちが]いやすいので注意です。

座標[ざひょう]は下方向がマイナスなので
「y座標[ざひょう]を-10ずつ[]える」のようにだんだん数を[]らしていきます。

「y座標[ざひょう]<-180なら」の部分は
のマークが反対むきになっていたりして間違[まちが]いやすいので注意です。


10歩動かすをつかって下に落とす

向きを調節[ちょうせつ]すれば「10歩動かす」も使えます。
WS0508
WS0509

「180度(下向き)」にするとリンゴはこんなふうになっちゃうのですが
「回転しない」にすることで、[つね]に上向きリンゴにしています。

これで「10歩動かす」を使うと、下向きにリンゴが進みます。


リンゴをいっぱい落とす

スプライトをコピーして、いくつもスプライトを使う方法[ほうほう]がありますが
今回は「クローン」を使ってみましょう。
WS0504
 
whyプログラミングの雨のプログラムでもやってましたよね。

WS0505
こっちが、クローンを[つく][つづ]けるプログラム。
「0.5秒まつ」の数字を小さくほど、多くのクローンを作ります
ちょっとでいいときは、数字を大きくして待ち時間をふやします。

WS0506
こっちがクローンされたときのプログラム。

リンゴがどこから落ちてくるかわからないようにするには「乱数[らんすう]」を使います
ステージのよこはばが-240から240まであるのでこれにあわせてます。

リンゴが画面からはみ出さないようにしたいときは
座標[ざひょう]調節[ちょうせつ]しましょう(-200~200くらい)

クローンは使いすぎるとゲームの動きが[おそ]くなるので
使い終わったら[わす]れずに削除[さくじょ]するようにしましょう。 


ヨコ移動[いどう]と落下を組み合わせてみよう

リンゴをなげる

ヨコ移動[いどう]とタテ移動[いどう]を組み合わせて、リンゴを投げるプログラム
リンゴ犬マックスに投げてもらいました。

プロジェクトはここ「リンゴを投げるマックス」
https://scratch.mit.edu/projects/118752299/

WS0510

マックスをクリックすると、リンゴを投げます。

WS0511
とりあえずマックスに
クリックされたら投げるアニメーションをさせます。
さいごに「リンゴを投げた」のメッセージを送ります。

WS0513

こちらがリンゴのプログラムです。
マックスから「リンゴを投げた」のメッセージを受け取ったら
マックスへ移動[いどう]させたあと、 リンゴが放物線を[えが]きながら落ちていきます。

ここで登場する「上に行く距離[きょり]」という変数[へんすう]
くりかえすたびに、1ずつ[]っていくので
放物線の頂点[ちょうてん]に近づくほど、上への移動[いどう]距離[きょり]が小さくなってゆき
頂点[ちょうてん]をすぎると、変数[へんすう]がマイナスになって落ちていきます。

WS0515
リンゴの軌跡[きせき][えが]くとこんなかんじです。
山のてっぺんに近づくほど、上への移動[いどう]が小さくなっていますよね。 

放物線の説明[せつめい]がわかりづらいときは
whyプログラミングのカエルのジャンプの回参考[さんこう]になります



トリがリンゴを落としてくる

トリはヨコ移動[いどう]でウロウロ・一定時間でリンゴを落としてくる ようなプログラムをしてみましょう。 宇宙船[うちゅうせん]攻撃[こうげき]してくるとか、色々アレンジできますね。

WS0516
トリにはうろうろしてもらいます。
キホンの ヨコ移動[いどう]だけですね。

WS0518
リンゴは、ランダムで落ちてくるときの応用[おうよう]ですね。
今回は、鳥がリンゴを落としてくるので、場所はランダムではなく鳥の座標[ざひょう]です。

もし、リンゴをだれかにキャッチしてほしい時は
クローンされたときの部分をこんなふうにします。
WS0519
これで、リンゴをキャッチできたときは、クローン削除[さくじょ]
リンゴが地面に落ちたときはゲームオーバー
というゲームになりますね。

サンプルゲームはこちら
WS0520


キー入力でキャラを動かしたい

イベントを使ったキー入力

Scratchでキーを使う方法[ほうほう]は2つあります。
そのうちの1つが、イベントのキー入力です。

WS0521
イベントカテゴリのなかに
「スペースキーが[]されたとき」というブロックがあります。
▼を[]すと[]きなキーを[えら]ぶことができます。

このイベントを利用[りよう]して、左右キーでキャラを動かすことができます
WS0522
 
ただ、使ってみてもらうと分かるのですが
かなり動きがカクカクしていますよね?

このイベントはWindowsのキー入力による
キーリピートの機能[きのう][はたら]いているため、長[]しすると
1回目の入力から少し時間を[]いてから、長[]しが有効になります。

アクションゲームのような動きをさせたい時は
このキー入力の方法[ほうほう]だとスムーズに動いてくれません。

[ぎゃく]に、クイズゲームの回答ボタンなど
[]ししてほしくない時や、キーを[]した時に変数[へんすう][あたい]を入れたい時などは
こちらのほうが使いやすいです。


調べるブロックを使ったキー入力

アクションゲームなどでキャラを移動[いどう]させたい時は
こっちのほうがよくつかわれます。

WS0523
地面の当たり判定[はんてい]していないので、ジャンプはテキトーですが
とりあえずキー入力はこんな感じです。
 
調べるブロックの「スペースキーが[]された」を使います。
この方法[ほうほう]だと、ゲーム中は「ずっと」キーが[]されたかどうかを見張[みは]っているので
イベントブロックよりもスムーズな動きになります。 

関連[かんれん]記事】
Scratchでアクションゲームを作りたい
色々なジャンプ方法[ほうほう]まとめ



移動[いどう]する方向を向いてほしい

向きをかえるなら、左右の移動[いどう]は「10歩動かす」でOK WS0524


マウスについてきてほしい

マウスにピッタリついてくる

マウスにピッタリついてくるには これだけでOKです。
WS0526
 
マウスカーソルの下につねにいるので
[ほか]のスプライトに「このスプライトがクリックされたとき」の
イベントを[]いていても反応[はんのう]しません。

WS0527
「このスプライトがクリックされたとき」を反応[はんのう]させたいなら
「前に出す」のブロックをつかって、ネコより前に出すとクリックできます。

ネコより前に出したくない時は
WS0529
こんなかんじで、マウスにはさわれないけれど
マウスについてきているネコに[]れたとマウスが[]されたの
[ふく]合技[ごうわざ]解決[かいけつ]です。


マウスにゆっくりついてくる

ピッタリついてくるのはなんか微妙[びみょう]・・・というときは
WS0530
 こんな感じにすると、マウスにゆっくりついてきます


WS0531
でもこれだと、マウスに当たった瞬間[しゅんかん]ダバダバするので

こんな感じで、ダバりを回避[かいひ]します。
WS0532

[てき]とは逆方向[ぎゃくほうこう]をむいてほしい

マウスにピッタリついてくるスクリプトって
向きが同じなのでかわいくないですよね。

[てき]から[]げるときは、[てき]背中[せなか]を向けて[]げてほしい!
そんなときはこれ
WS0533

いちど「[てき]に向けて」から180度回します
これで、どの方向を向いていても、[てき]につねに背中[せなか]を向けて動いてくれます。

さいごに

移動[いどう]方法[ほうほう]はだいたい紹介[しょうかい]できたかなと思いますが
どうだったでしょうか?

こんな移動[いどう]方法[ほうほう]が知りたい!というのがありましたら コメントでおしらせください。