今回は「ペン」を使って画面にステージを描いてみよう
まずはこちらのURLを確認してね。http://scratch.mit.edu/projects/29491516/

Painter Platformer(ペインタープラットフォーマ―) 
WS0036

をおしてスタートして、画面内をクリックしながらマウスを動かすと
白い線が描けるよ。

この白い線が、左下のキャラクターの足場になるよ。
矢印キーでキャラクターを動かせるよ。

「中を見る」ボタンでどんなスクリプトになっているか確認しよう。 

ペンで描くプログラム

まずはSprite1のスクリプトを見てみよう。
WS0038
 
ペンで描くスクリプトはとてもシンプル!
 WS0039
ひとつ目の「go」はペンの初期化をしているよ。
 「ペンの太さ」「ペンの色」をそれぞれ決めて、ずっとマウスポインターに
ついてくるように 設定しているね。

もうひとつの「go」ではマウスが押されたときにペンをおろして
マウスが押されていないとき(クリックをやめたとき)にペンを上げているね
こうすることで、画面上でマウスが押されているときだけ
ペンで描くことができるよ。

キャラクターの移動プログラム

※当たり判定や移動方法が少しむずかしいのでぜんぶわからなくても大丈夫!
まずはこの通りに組んでみて、試してみるところから始めよう!


キャラクターは「Sprite2」のスクリプトを見てね。
WS0037

移動するときにXvやYvといった変数をつかっているね
WS0042
普通の移動だと、「x座標を10ずつ変える」のような
スクリプトをつかうよね?
 
このXvやYvは加速度をつかった移動のための変数だよ。
(→キーを押し続けると、だんだん移動の速さが早くなるよ)

ただキーを押し続けても、無限に速くなるようなことがないように
加速させたあと、0.9をかけて速さが3.6以上にならないように調整しているよ。

この移動方法は、キャラクターの動きがリアルに見えるので
アクションゲームで移動にこだわりたいときは参考にしてみてね。 

WS0043
この部分は、「白色に触れたら y座標を5ずつ変える」
のようにしてもいいように見えるけど
ナナメの線を引かれたときでも、移動がスムーズに見えるように
わざと分けて1ずつ変えるようにしているよ。
(試しにこの部分を省いてみると、動きがガクガクになっているのがわかるよ)

一番内側の「もしブロック」で「y座標を-5」にしているのは
キャラクターの上側に線がひかれた場合の当たり判定だよ。
(この部分がないと飛び出してしまうことがある)

WS0044
最後にy座標(ジャンプしたとき)の処理と
ゴール(Sprite6)に触れたときのスクリプトを組めば完成!

アレンジしてみよう!

このゲームは、アレンジ次第でとても面白くなるよ。
障害物を置いてみたり、描ける時間を制限してみたり・・・
いろんな敵を置いてみてもいいね。 
 
キミだけのゲーム作りに挑戦してみよう。


この記事がよかった!という方は「B!」ボタンや
こちらのボタンを押していただけると元気がでます!