- 追加された行はこの色です。
- 削除された行はこの色です。
- 次の面に移る へ行く。
//@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)]] [[トップ>迷路ゲームの作成]]