Scratchのコードが書けない!を解決する方法

私は、エンジニアではなく文系のライターなのでなかなかコードが浮かびません。Scratchのチュートリアルや本などで勉強しましたが、真似しているだけで「どうしてこのコードなのか」とうことが分からない時があります。作品を作っていくうちに、少し改変したり簡単なコードは書けるようになりました。簡単なゲームは作れますが、ちょっと込み入ったゲームになるとお手上げです。

きっと、子どもたちも同じようなところでつまずくのでは・・と思い、Scratchのゲーム作りをステップアップさせるコツを紹介します。まず、チュートリアルや本で学習を進められるなら、進めた方が良いです。体系的にScratchを学習できます。初めは意味が分からなくても大丈夫です。数をこなすうちに、分かるようになることが多いです。

そのうち、こんな思いが沸き上がってはいませんか?「もっと面白いゲームが作りたい!」既存のゲームはつまらない。自分のアイディアを形にしたいんだ!!といっても、「コードが書けない」という壁にぶちあたります。(今の私がそう)そんなときは、自分が「面白い」と思った他の人の作品をリミックスしまくりましょう。幸い、Scratchの公式サイトではリミックス(改変)が認められています。自分の引き出しにどんどん新しいコードがたまっていき、完全オリジナルで複雑なゲームを作ることも可能になりますよ。

リミックスのやり方

リミックスしたい作品があったら、「中を見る」をクリックします。

画面右上にある「リミックス」をクリックしましょう!

「私の作品」に作品がコピーされた入ります。作品名の最後に「remix」と入っているのが目印ですよ。

リミックスの決まりごと

Scratchのリミックスには、ガイドラインがあります。

・リミックスした作品には、元の作者の名前を「作品と貢献」に記入すること

・素材を変更すること

・新しい要素を付け加えること

この3つを守らないと、「盗作」になる恐れがあるので気を付けて下さいね!リミックスは、完コピではなく元の作品を参考にして新しいゲームを作るクリエイティブな作業になります。

リミックスしてみよう

私がリミックスするのは、Dolfus555さんの「3D skier of Awesomeness V1.1」です。左右の矢印でスキーヤーを動かし、軽やかにジャンプする爽快な作品です!リミックスすることは、「新しい要素を付け加えること」とありますが、元のコードのままでは自分のレベルが追い付いていけないので、コードをシンプル化するところから始めました。

スキーヤーのコードをシンプル化

とても作り込まれたコードでしたが、泣く泣く削り落として

・右矢印をクリックしたら「rightを送る」

・左矢印をクリックしたら「reftを送る」

・ジャンプ台を飛び越えたら1点入る

というシンプルなコードにしました。削れなかったのはこの部分のコードです。y座標の繊細な変化が、プレイヤーの優雅なジャンプに繋がるんですね。

ジャンプ台のコードをシンプル化

ジャンプ台のコードもシンプル化しました。

・leftを受け取ったときにX座標を3.2ずつ変える

・rightを受け取ったときX座標を-3.2ずつ変える

・135から-133までの乱数のX座標、y座標44からランダムに出現して、大きくなりながらy座標を-2ずつ移動する

スキーヤーは左右に動きませんが、ジャンプ台が左右に移動することでスキーヤーが左右に動いているように見えるんですね。

Scratch3.0とマイクロビットを接続する

スキーヤーが左右に移動してジャンプするきっかけを、マイクロビットをコントローラーにして行いたいと思います。Scratch3.0とマイクロビットを接続する方法はこちらの記事をどうぞ。

Scratch3.0でコードを作成します。スプライトは、スプライトライブラリーから選んでも良いしオリジナルで作っても楽しいです。

コードを追加する

シンプルに削り落としたコードに新しい要素を追加します。10点取れるまでのタイムを競うゲームに変更していきます。そして、スキージャンプではなく「うま跳びゲーム」に。

・スキーヤーを「プレイヤー」

・ジャンプ台を「どうぶつ」に変更します。

背景にタイマーを設置する

変数でタイマーを作ります。点数が5点になるとタイマーが止まるコードです。

点数が5点になったら「すべて止める」でも良いかなと思ったのですが、ジャンプする前のどうぶつに触れて5点になった瞬間に全て止まってしまうので「このスクリプトを止める」にしました。

プレイヤーのコード

プレイヤーは常に最前面になるようにします。

ジャンプをしたら1点入るコードです。

メッセージブロックを使わなくても大丈夫なようなのでさらにシンプル化しました。

どうぶつのコード

このゲームは、「プレイヤー」をマイクロビットでコントロールするのではなく「どうぶつ」をマイクロビットでコントロールします。

・マイクロビットを右に傾けると「どうぶつ」が右に

・マイクロビットを左に傾けると「どうぶつ」が左に

動きます。

「どうぶつ」が135から-133までのランダムなX座標、44のy座標から現れるコードです。y座標は-2から-7までランダムに変わることで、プレイヤーに近付く速度が変化します。どうぶつの大きさは2ずつ大きくなってきます。

遊んでみよう

実際に遊んでみると、不具合が見つかるので調整します。「もっとこうした方が面白い」というアイディアも浮かびますよ!コードをかなり削ったので、オリジナルと比べると1/100ほどの質になっています;

まとめ

Scratchでゲームを作るのは簡単ではありません。最初は簡単なゲームしか作れなくても、少しずつコードをマスターしてステップアップしていけたらいいですね!他の人のコードは、とても勉強になります。私も、他の人の作品をどんどんリミックスしてコードの意味を理解しながらゲームを作っていきたいと思います。

Scratch(スクラッチ)3.0とmicrobit(マイクロビット)でゲームを作ろう!