このWikiは古くなりました:新しいWikiへ移動


//@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
[[←前>自機や敵を破壊する]]  [[次→>次の面に移る]]  [[トップ>迷路ゲームの作成]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS