←前 次→ トップ |
次の面に移る
敵をすべて倒すと、次の面に移る処理を行いましょう。
2面を作る
といっても、今のところゲーム画面が1つしかないので
もう1つ面をつくることにしましょう。
今までのゲーム画面を1面、これから新しく作る面を2面とします。
まず1面のページを開きます。
そして「ファイル」の「名前をつけて保存」を選びます。
ここではstage2.cmmlという名前で保存します。
これで、1面の内容が2面にコピーされました。
今は2面が開いているので、2面のパターンを作ってみましょう
敵の数をふやしたり、はしごの配置をかえたり、いろいろ変更をくわえてみてください。
1面をクリアしたら、2面を開始する処理を作る
さらに、1面をクリアしたらこの2面が始まるようにしましょう
プロジェクトマネージャを開き、再び1面を開きます。
まず、クリアしたかどうかの判定を行いましょう
クリアしたら2面に移動するという動作を行うオブジェクトを作ります。
オブジェクトを作るを参考にオブジェクトを作成します。ここでは$stage1という名前にします。
さらに、「オブジェクトの種類」を「シークレット」にします。
このオブジェクトは、クリアしたかどうかの判定だけを行うので、実行中は表示する必要がありません。「シークレット」にすると実行中に表示されないオブジェクトになります。
オブジェクトをダブルクリックし、次のように入力します。
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オブジェクトの動作を説明します。
まず、敵が全滅するまでは、この部分を実行します:
|
while文の働きにより、enemyLivesが1のときは次の部分(while文の中)を実行します。
|
↑この処理は、enemyLivesが0になるまで繰り返します。
enemyLivesは
enemyLives=0; |
によって、一旦0になりますが
|
によって、画面内に敵が1つでもいる場合、1になります
結果として、敵がまったくいなくなると、enemyLivesが0になり、while文以降の処理に以降します。
while文以降の処理では、2面を読み込みます。
|
2面をクリアしたときの処理を追加する
今回は簡単のため、2面クリアしたら終わりにして、タイトルに戻るようにしましょう。
まず2面を読み込みます
オブジェクトを作るを参考にオブジェクトを作成します。ここでは$stage2という名前にします。また、先ほどと同じく、「シークレット」を選択します。
オブジェクトをダブルクリックし、次のように入力します。
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の部分は、スタート画面のページの名前です。これはプロジェクトマネージャで確認して、もし違う名前だったらその名前にしてください。
←前 次→ トップ |