このWIKIを編集するにはパスワード入力が必要です

認証パスワード
RSSフィード

究極に動かしてみよう

1.正男を右に早く動かそう。

ほんの少し本格的になりました
まずすることは、正男がどこにいるかを現すメゾットを入力しよう。
mainLoop(){}内に
my_x=Applet1.getMyX();
my_y=Applet1.getMyY();
これらは正男の現在の横の位置、縦の位置をmy_x,my_yに入れたものです。
第一章のアイテム装備にもありましたが、fb_cやmy_xなどはすべて「変数」といいます。
さて、入力したところで、動かしましょう。
mainLoop(){}内に
Applet1.setMyPosition(my_x+1,my_y);
を入れよう。
このメゾットは、指定したX座標とY座標に正男を動かすメゾットです。
さっきのメゾットは、正男のX座標の右側、正男のY座標に動かします。
・・・つまりこれでテストプレイすると、正男は永遠に高速で右側に移動することになります。
これが嫌だと言う方、待ってましたその言葉(何
キーで動かしましょう。
そのやり方はmainLoop(){}内に
key=Applet1.getKeyCode();
を入れましょう。
これはkeyという変数にキーコードを代入する文です。
余談ですが、=はスクリプトでは代入ということになります。
if文などでイコールと表す場合、==と入力しましょう。
これは余談だけど大事な話だよ。これでよく間違えるからね。
さて。入力が終わったら、つぎはmainLoop(){}内に
if(key==65){}を入力し、Applet1.setMyPosition(my_x+1,my_y);を
if(key==65){}内に移しましょう。
この文の意味は、
Aキーを押すと、正男は移動する、という意味になります。
例)if(key==65){Applet1.setMyPosition(my_x+1,my_y);}

2.正男に特技を増やす

通常正男の特技は決まっていますが、
スクリプトで増やすことができます。
例として、三段階ジャンプを作りましょう。
init(){}内に書き入れるものは
j_c=0;
だけです。
これはジャンプのカウンターを表します。
そして、mainLoop(){}内に取得変数値として書くのは
my_t=Applet1.isRideGround();
key=Applet1.getKeyCode();
これだけです。
上から地面についているかどうか、押したキーのコードをあらわします。
そしてここからが醍醐味です。
mainLoop(){}内に
if(my_t!=1){
if(key==32&&j_c!=3){
if(j_c==0){
j_c++;
Applet1.resetKeyCode();
}
else{
j_c++;
Applet1.setMyVY(-200);
Applet1.resetKeyCode();
}
}
}
else{j_c=0;}
これで一応完成です。
まず意味を説明しましょう。
最初のif文は地面についていないときという意味です。
次に重ねてあるif文はスペースキーを押していて、
ジャンプのカウンターが3でないときという意味です。
そしてさらにif文があります。ここが大事。
ジャンプのカウンターが0のとき、ジャンプのカウンターをあげて、
キーコードをリセットします。
else文は
そうでない場合、正男の縦のスピードを-200にし、ジャンプのカウンターをあげ、
キーコードをリセットします。
なぜこうしたかといいますと、
if(key==32&&j_c!=3){
j_c++;
Applet1.setMyVY(-200);
Applet1.resetKeyCode();
}
こう書いてしまうとスーパージャンプが対応しなくなります。
なので二つに分けて書いたという訳です。
(わざとスーパージャンプを対応させないという手もありです。)
最後にあるelse文はジャンプのカウンターを0にするという意味です。
これでリセットし、もう一度3段ジャンプができるという仕組みになります

  • 最終更新:2009-04-03 17:15:21