・使用しているFlashのバージョンは.5ですので、最新バージョンとの相違点があるかもしれません。
・また、手法やロジックについては、性能面で問題のある部分があるかもしれませんが、個人の趣味の範囲ということでご容赦ください。
1.フレームアクション |
|
■フレーム19のアクション //ステージ内の移動にかかわる変数の定義 // fiterの初期向き _root.charamuki = "R"; // キャラの横移動の値 _root.charamovevalmax = 15; // キャラのジャンプ時の横移動の値 _root.jumpmovevalmax = -5; // キャラのジャンプ縦移動の値 _root.jumpmovemax = 15; |
|
■フレーム25のアクション //ステップの数(地面を含む) _root.stepvalmax = 5; //壁の数 _root.kabemax = 3; //着地している初期ステップ(stepno = 1は地面) _root.stepno = 1; // キャラの横移動変数 _root.charamoveval = 0; // キャラの縦移動変数 _root.jumpmoveval = 0; // キャラの移動可能かのSW(0=Ok,1=NG) _root.moveoksw = 0; // キャラのジャンプ可能かのSW(1=ジヤンプ中) _root.jumpsw = 0; //fighterのアニメーション用 eval("_root.fighter").gotoAndPlay(22); //fighterの各パーツを足の位置に整列させる _root.fighter._y = _root.myfoot._y; _root.fighter._x = _root.myfoot._x; _root.mybody._y = _root.myfoot._y; _root.mybody._x = _root.myfoot._x; _root.myhead._y = _root.myfoot._y; _root.myhead._x = _root.myfoot._x; |
■フレーム39のアクション //ステージ内の移動にかかわる変数の定義 // fiterの初期向き _root.charamuki = "R"; // キャラの横移動の値 _root.charamovevalmax = 15; // キャラのジャンプ時の横移動の値 _root.jumpmovevalmax = -5; // キャラのジャンプ縦移動の値 _root.jumpmovemax = 15; |
2.オブジェクトアクション |
|
■DUMMYKEYのアクション | ■myfootのアクション |
// 右へ on (keyPress "<Right>") { if (_root.moveoksw == 0) { _root.charamove = "R"; _root.charamuki = "R"; eval("_root.fighter").gotoAndPlay(1); // キャラの移動変数 _root.charamoveval = _root.charamovevalmax; _root.jumpmoveval = _root.jumpmovevalmax; } } // ジャンプ on (keyPress "<Up>") { if (_root.moveoksw == 0) { _root.moveoksw = 1; _root.jumpsw = 11; if (_root.charamuki == "R") { eval("_root.fighter").gotoAndPlay(6); } else { eval("_root.fighter").gotoAndPlay(33); } } } // 左へ on (keyPress "<Left>") { if (_root.moveoksw == 0) { _root.charamove = "L"; _root.charamuki = "L"; eval("_root.fighter").gotoAndPlay(28); // キャラの移動変数 _root.charamoveval = _root.charamovevalmax*-1; _root.jumpmoveval = _root.jumpmovevalmax*-1; } } // しゃがむ on (keyPress "<Down>") { if (_root.moveoksw == 0) { _root.charamove = "X"; if (_root.charamuki == "R") { eval("_root.fighter").gotoAndPlay(55); } else { eval("_root.fighter").gotoAndPlay(61); } // キャラの移動変数 _root.charamoveval = 0; } } // 止まる on (keyPress "<Space>") { if (_root.moveoksw == 0) { _root.charamove = "X"; if (_root.charamuki == "R") { eval("_root.fighter").gotoAndPlay(22); } else { eval("_root.fighter").gotoAndPlay(49); } _root.goalmoveval = 0; // キャラの移動変数 _root.charamoveval = 0; } } // 押す on (keyPress "p") { if (_root.moveoksw == 0) { _root.charamove = _root.charamuki; if (_root.charamuki == "R") { // キャラの移動変数 _root.charamoveval = _root.charamovevalmax/2; eval("_root.fighter").gotoAndPlay(67); } else { // キャラの移動変数 _root.charamoveval = _root.charamovevalmax/2*-1; eval("_root.fighter").gotoAndPlay(70); } } } |
onClipEvent (enterFrame) { _root.jumplimit = 5; savex = this._x; savey = this._y; // 前回チェックでステップに乗っていたか?(stepno=1は地面) if (_root.stepno>1) { if (this.hitTest(eval("_root.step"+_root.stepno))) { // まだそのステップに乗っている? continue; } else { // もうそのステップに乗っていない? //ジャンプ中にする _root.jumpsw = 1; //キーボードを無視させる _root.moveoksw = 1; //Fighterのアニメーション変更 if (_root.charamuki == "R") { eval("_root.fighter").gotoAndPlay(19); } else { eval("_root.fighter").gotoAndPlay(46); } } } // 左右の移動 // 上昇中? //壁にぶつかったときの処置(Fighter逆向きにする) // // まだ上昇中? } else { // 下へ // 壁にぶつかっているなら、このイベントの最初のX位置に戻す |