//@pnavi
[[←前>自機や敵を破壊する]] [[次→>次の面に移る]] [[トップ>迷路ゲームの作成]]
**スタート画面を作る [#na87238e]
ゲーム開始前のスタート画面を作ってみましょう
まずスタート画面用の新規ページを作ります。
メニューの「ファイル」>「プロジェクトに新規ページを追加」を選びます。
&ref(npageMenu.png);
&ref(newTitle.png);
ゲーム画面のファイルがあるディレクトリと同じディレクトリに、 start.cmmlというファイル名のページを作成します。
ここでは単に"Press Space Key"と表示させ、スペースキーの入力が
あったらゲーム画面に移動しましょう
***Press Space Key という文字を表示する [#zdffbbed]
[[オブジェクトを作る>オブジェクトを作る]]を参考にオブジェクトを作成します
ただし、「オブジェクトの種類」に「テキスト」を選択してください。
&ref(pressSpace.png);
オブジェクトクリックし、オブジェクトインスペクタでtextの値を編集します。
&ref(pressSPCText.png);
オブジェクトをダブルクリックし、次のように入力します。
//prog
extends TextChar;
while(1) {
update();
}
実行させると、画面に''Press Space Key''と出ます。
***ページを変える [#ke7a0911]
さらに、スペースキーを押すと先ほどのゲーム画面に移動するようにします。
まず少し準備が要ります。ツールメインウィンドウの&ref(prjMan.png);を選んでください。
すると、このように''$page_index''、''$page_start''といった2つの項目が現れます。これは、このゲームが使用するページの一覧です
&ref(toolprj.png);
ここでは、
-スタート画面のページを$page_start
-ゲーム画面のページを$page_index
としてすすめていきます。
先ほどPress Space Keyを表示させるオブジェクトをダブルクリックし、次のように変更します。
//prog
extends TextChar;
while(1) {
if (getkey(32)>0) $projectManager.loadPage($page_index);
update();
}
実行させてみましょう。スペースキーをおすと、先ほどのゲーム画面に移動します。
プログラムを停止させ、もう一度プロジェクトマネージャを開いてください。"$page_start"の欄をダブルクリックして、スタート画面に移動してください。
&ref(selStart.png);
さきほどのプログラムの解説です。
//progfrac
if (getkey(32)>0)
この部分は、[[自機を動かす>自機を動かす(2)]]で説明したように、キーボードの入力を判定します。32はスペースキーを表します。
スペースキーが押されると、次の部分を実行します。
//progfrac
$projectManager.loadPage($page_index);
これは、他のページを読み込む命令で、次のような使い方をします
//plainForm
書式:
$projectManager.loadPage(ページ名 );
'''ページ名'''は、さきほどプロジェクトマネージャで確認したページの名前です。
&ref(toolprj.png);
-自機が死んだらスタート画面に戻る
先ほどのページを読み込む命令を使って、自機が死んだらスタート画面に戻るようにしましょう
プロジェクトマネージャを開いてください。"$page_index"の欄をダブルクリックして、ゲーム画面に移動してください。
&ref(selindex.png);
敵をダブルクリックし、次のように変更します。
//prog
extends SpriteChar;
vx=2;
while(1) {
x+=vx;
if (x<0) vx=2; if (x>$screenWidth) vx=-2; if (rnd(500)==0) vx=-vx;
if (crashTo($myChar)) {
//↑敵と自機がぶつかったときに
if ((vx>0 && $myChar.x<x) || (vx<0 && $myChar.x>x)) {
//↑敵が右方向、自機が左 または 敵が左方向、自機が右
die();
//↑ならば、敵が死ぬ
} else {
$myChar.die();
//↑そうでなければ自機が死ぬ」
$projectManager.loadPage($page_start);
}
}
if (vx<0) f=1; else f=0;
update();
}
これにより、自機が死ぬとスタート画面($page_start)が読み込まれます。
//@pnavi
[[←前>自機や敵を破壊する]] [[次→>次の面に移る]] [[トップ>迷路ゲームの作成]]