Tonyu System 1 - wiki


←前次→チュートリアルWikiトップ

チュートリアル - 実践編 - 迷路ゲーム (6/7)

次の面に移る

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

2面を作る

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

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

saveasmenu.png

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

saveas.png

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

1面をクリアしたら、2面を開始する処理を作る

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

1men.png

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

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

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

mk-stage1.png

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

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オブジェクトの動作を説明します。

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

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

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

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

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

enemyLivesは

  enemyLives=0;

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

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

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

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

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

 $projectManager.loadPage($page_stage2);

2面をクリアしたときの処理を追加する

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

まず2面を読み込みます

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

mk-stage2.png

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

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の部分は、スタート画面のページの名前です。
これはプロジェクトマネージャで確認して、もし違う名前だったらその名前にしてください。


←前次→チュートリアルWikiトップ