<ruby><rb>謎解</rb><rp>[</rp><rt>なぞと</rt><rp>]</rp></ruby>き_タイトル


Scratchをつかって、お話を考えたり、絵本のようなプロジェクトを
作っている人も多いと思いますが
謎解[なぞと]きゲーム・脱出[だっしゅつ]ゲームのようなゲームは少ないですね。
その原因[げんいん]の一つが「シーン管理[かんり]がムズカシイ」ということです。

色々な部屋[へや]移動[いどう]したり、その部屋[へや]でしか反応[はんのう]しない
キーがあったり、ギミックを作ったり……
それをうまく管理[かんり]する方法[ほうほう]のひとつが「シーン管理[かんり]」です。

今回は「アイテム画面を作る」というサンプルを利用[りよう]して
ゲーム作りのヒントをつかんでいきましょう。


↓↓[つづ]きを読む↓↓をご[らん]ください 
 

[Scratch]謎解[なぞと]きゲームでもちもの画面をつくるには?


変数[へんすう]を使ったシーン管理[かんり]

サンプルプロジェクト

まずはこちらのプロジェクトをみてみましょう。
https://scratch.mit.edu/projects/146941014/
WS0705

部屋[へや]」の画面で「Oキー」を[]すとバックパックがひらき
「バックパック」の画面で「Bキー」を[]すと部屋[へや]の画面に[もど]ります。


「中を見る」ボタンを[]して中を見てみましょう。

変数[へんすう]を使ってどのシーンかをチェック

サンプルのスクリプトはこんな感じです
WS0706


まずは、システムの状態[じょうたい]をチェックするために
「システムの状態[じょうたい]変数[へんすう]を作ります。

[はた][]されたときに、システムの状態[じょうたい]を決めておきましょう。

シーンによって、[]せるキーが[ちが]ったり、色んなイベントが起こるようにしたい時は
WS0707
こんな感じで「システムの状態[じょうたい]が○○で、○キーが[]されたなら」
という条件[じょうけん]をつくり、そのキーが[]されたときのプログラムをします。

システムの状態[じょうたい][]わる時には、[わす]れずに変数[へんすう]の中身を[]えておきましょう。


イベントを使ったシーン管理[かんり]

サンプルプロジェクト[

https://scratch.mit.edu/projects/146941049/
WS0710

つぎは、変数[へんすう]を使わずにシーン管理[かんり]する方法[ほうほう]です。
いま動いているシーンがわかりやすいので
小学生によく使われている方法[ほうほう]ですね。

ポイントは「スクリプトの停止[ていし]


WS0708

プログラムはこんな感じです。
シーンごとにキー入力のチェックをするので、スクリプトが多めになりますが
「○○かつ○○なら」のようにややこしい条件[じょうけん]にしなくてよいので
分かりやすいですね。

WS0709
気をつけたいのは
[ほか]のシーンにうつる時に、「このスクリプトを止める」を使って
使い終わったスクリプトを止めておくということです。

スクリプトを止めずに[ほか]のシーンに移動[いどう]してしまうと
[ほか]のシーンでも前のシーンのイベントが反応[はんのう]してしまうので
バグの原因[げんいん]になってしまいます。

イベントでシーン管理[かんり]するときは、どのスクリプトを止めて
どのスクリプトは動かしたままにするか、をきちんと管理[かんり]しておくことが大切です。

さいごに

お話や、謎解[なぞと]きゲームにかぎらず、ゲームにちょっとオプション画面を
追加[ついか]したい……なんていうときにも、この方法[ほうほう]が使えます。

シーンが[]えてくると、色んなイベントがゴチャゴチャになってきて
よくわからなくなってしまうのですが
シーンをひとつ[]やすごとに、きちんと動作確認[かくにん]するようにして
丁寧[ていねい]に作っていくと、バグも少なくなりますよ。