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


//@pnavi
[[←前>スタート画面を作る]]  [[次→>配布する(2)]]  [[トップ>迷路ゲームの作成]]

**次の面に移る [#a29fc081]

敵をすべて倒すと、次の面に移る処理を行いましょう。

***2面を作る [#pceca2e4]

といっても、今のところゲーム画面が1つしかないので
もう1つ面をつくることにしましょう。
今までのゲーム画面を1面、これから新しく作る面を2面とします。

まず1面のページを開きます。
そして「ファイル」の「名前をつけて保存」を選びます。

&ref(saveasMenu.png);

ここでは''stage2.cmml''という名前で保存します。

&ref(saveas.png);

これで、1面の内容が2面にコピーされました。
今は2面が開いているので、2面のパターンを作ってみましょう
敵の数をふやしたり、はしごの配置をかえたり、いろいろ変更をくわえてみてください。

***1面をクリアしたら、2面を開始する処理を作る [#uab473d3]

さらに、1面をクリアしたらこの2面が始まるようにしましょう
プロジェクトマネージャを開き、再び1面を開きます。

&ref(1men.png);

まず、クリアしたかどうかの判定を行いましょう
クリアしたら2面に移動するという動作を行うオブジェクトを作ります。

[[オブジェクトを作る>オブジェクトを作る]]を参考にオブジェクトを作成します。ここでは''$stage1''という名前にします。

さらに、「オブジェクトの種類」を「シークレット」にします。
このオブジェクトは、クリアしたかどうかの判定だけを行うので、実行中は表示する必要がありません。「シークレット」にすると実行中に表示されないオブジェクトになります。

&ref(mkStage1.png);

オブジェクトをダブルクリックし、次のように入力します。

//prog


 extends SecretChar;
 enemyLives=1;
 while (enemyLives==1) {
   enemyLives=0;
   for (e in $chars) {
     if (e is Enemy) enemyLives=1;
   }
   update();
 }
 $projectManager.loadPage( ''$page_stage2'' );


 ''$page_stage2''の部分は、2面のページの名前です。これはプロジェクトマネージャで確認して、もし違う名前だったらその名前にしてください。

実行してみると、敵が全滅すると2面が開始します。

ここで、$stage1オブジェクトの動作を説明します。

まず、敵が全滅するまでは、この部分を実行します:

//progfrac 
 enemyLives=1;
 while (enemyLives==1) {
   enemyLives=0;
   for (e in $chars) {
     if (e is Enemy) enemyLives=1;
   }
   update();
 }


[[while]]文の働きにより、enemyLivesが1のときは次の部分(while文の中)を実行します。

//progfrac 
   enemyLives=0;
   for (e in $chars) {
     if (e is Enemy) enemyLives=1;
   }
   update();


↑この処理は、enemyLivesが0になるまで繰り返します。

enemyLivesは

//progfrac 
   enemyLives=0;


によって、一旦0になりますが

//progfrac 
   for (e in $chars) {
     if (e is Enemy) enemyLives=1;
   }


によって、画面内に敵が1つでもいる場合、1になります

結果として、敵がまったくいなくなると、enemyLivesが0になり、while文以降の処理に以降します。

while文以降の処理では、2面を読み込みます。

//progfrac 
  $projectManager.loadPage($page_stage2);


***2面をクリアしたときの処理を追加する [#o2d79461]

今回は簡単のため、2面クリアしたら終わりにして、タイトルに戻るようにしましょう。

まず2面を読み込みます

[[オブジェクトを作る>オブジェクトを作る]]を参考にオブジェクトを作成します。ここでは''$stage2''という名前にします。また、先ほどと同じく、「シークレット」を選択します。

&ref(mkStage2.png);

オブジェクトをダブルクリックし、次のように入力します。

//prog


 extends SecretChar;
 enemyLives=1;
 while (enemyLives==1) {
   enemyLives=0;
   for (e in $chars) {
     if (e is Enemy) enemyLives=1;
   }
   update();
 }
 $projectManager.loadPage( $page_start );


''$page_start''の部分は、スタート画面のページの名前です。これはプロジェクトマネージャで確認して、もし違う名前だったらその名前にしてください。

//@pnavi
[[←前>スタート画面を作る]]  [[次→>配布する(2)]]  [[トップ>迷路ゲームの作成]]

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