[PR]田丸麻紀さん愛用ダイエット:大人気サプリメント!注文殺到中です

Cross機能


クロス、「交差」お待たせしてすいません

一定の場所のみがリバース適用される、つまりはクロス




今回は根本的な所を弄るので帳尻合わせの為に色んな所を弄ります、Option製作に慣れてきた人用かもです

この場合のクロスは細かく言うと

「クロスの場合、下と上矢印のステップゾーンのみがリバースし、矢印もそれぞれ違う流れ方をする。」です

と、言うわけで矢印の動きを扱っている「MAKE矢印」をまず弄りましょう




ステップゾーンは一括で管理しているために別々には動かせませんなので別々に動かすために

アクションの枠をぐいっと広げて中腹辺りにある function move1 これを弄ります

これは流れてくる矢印の速さ

ライフが0になったらゲームオーバーに行くなどゲームの矢印関係の設定をしている所です

で、これを二つ作ってクロスの時、反転する奴と反転しない奴とを使い分ける様にします

が、その前に move1にクロスだった場合通常時と同じ扱いをするようにちょっと追加しましょう

if (_global.Reverse == false || _global.Reverse == "cross") {
//もしリバース設定が OFF か Cross なら

これでクロスの時動かない方はちゃんと動くようになります、さて次に行きましょう




思いっきり枠伸ばしてみました、この様に新たに function move2 を作ります

ちなみにmove2の場合

クロスの設定を適用した時にのみ使用するように調整するのでリバース設定の部分は要りません

内容は function move1 とほとんど同じですが

何が変わっているかというと上3行が違います、move1 と比較して行きましょう

function move1() {             //move機能1
  this._y -= _global.SpeedUp;      //流れてくる矢印はSpeedUpの値を引いていく
  if (this._y<_global.out) {         //もし流れてくる矢印の位置が out 値より少なければ

function move2() {             //move機能2
  this._y -= -(_global.SpeedUp);     //流れてくる矢印はSpeedUpの値をマイナスにした物を引いていく
  if (this._y>390) {             //もし流れてくる矢印の位置が390以上になったならば

ちょっと小難しいのでコメント+解説で進めていきます

1行目の名前は1とは別物にしておきましょう、この場合 function move2です

2行目は流れてくる矢印の動きを設定しています Speed設定で標準速度を選択していた場合は 2 になりますね

でもこの場合 function move2では

クロスの時に反転させる矢印に使うのですから矢印が逆に流れてくるようにします

そのため SpeedUp 値にマイナスをかけてあげます(-2はリバース状態ですからね)

3行目はこれ以下に

_parent.effect.gotoAndPlay(230);    //上の領域エフェクトを230番に移動させ開始する
_global.uwan++;               //ウワァン値を1足す
_global.life--;                //ライフを1減らす

このように続きますがこれはウワァンを取った時、つまりは設定したイイ判定からズレた時の事を指しています

move2 では _global.out の部分を 390 としていますが

クロスをしている時に out 値はノーマルの状態になっているので

390と言う数字を直接入れます

と、長くなりましたがここでひとまず使い分けるべく二つの move が作れました、今度はこれを対応させていきましょう

同じく[MAKE矢印]の下の方、"upMC" "downMC"などが見えるところに行きましょう

これの _parent[newArrowName].onEnterFrame = this.move1; と言う所に注目、いかにも怪しいですね

ここで function move1を 上矢印は使っていますよと言う指定をしています

これをオプションによって使い分けるようにしましょう




if (_global.Reverse == "cross" ) {                  //もしリバース設定が"クロス"なら
  _parent[newArrowName].onEnterFrame = this.move2;    //メインステージの矢印の動きに move2 を使う
  _parent[newArrowName]._y = _global.SpeedY-(70+300*(_global.SpeedUp-1));
   //メインステージの Y は SpeedY-(70+300*(SpeedUp-1)の値になる

} else if (_global.Reverse == true || _global.Reverse == false){ //そうではなくもしリバース設定が on か off なら
  _parent[newArrowName].onEnterFrame = this.move1;    //メインステージの矢印の動きに move1 を使う
  _parent[newArrowName]._y = _global.SpeedY;         //メインステージの Y はSpeedYの値になる
}

そろそろこんがらがって来るでしょうけどがんばりましょうあと一息かもしれません

クロスの場合の Y は この計算で Speed設定が1の場合

370 - (70+300*(2-1)) =370 - 370 = 0 という訳でリバース状態の SpeedYになります

こうする事でリバースを根本から設定する事できるわけです

これを UP と DOWNに仕込むわけです(絵をよく参照してください)

さて、ここまでできればCrossの仕組みは完成です

後はスピードがちゃんと切り替わるようにするのと、ステップゾーンもちゃんと変わるようにして行きましょう




まずはステップゾーンから

if (_global.Reverse == true || _global.Reverse == "cross") {       //もしリバース設定が on か cross なら
  this._y = 300;                                //ステップゾーンの位置を300に
  _root.up_hit._y = 300;                            //当たり判定の位置を300にする

これはクロスになった時に反転するステップゾーンに追加しましょう(この場合だとup_stepと down_step)

元ソースからだと1行目の true の後にクロスの文を付け加えるだけでOKです

では次に設定のスピード設定も同じように足しましょう




if (_global.Reverse == false || _global.Reverse == "cross") {       //もしリバース設定が off か cross なら
  _global.SpeedY = 370;                           //SpeedY を 370 に
  _global.SpeedUp = 2;                           //SpeedUp を 2 に
  _global.out = -10;                             //out を -10 にする

これでOKですMAKE矢印でクロスになった場合上下のみは設定でちゃんとリバースになるようになっているので

スピード設定では off だった時に付け加えましょう、これで反転しない 左、右、おにぎりが正常に流れてきます


以上で終了です、お疲れ様でした

相当色んな所を弄っているので別の所を反転するクロスが作りたい

なんて事になれば色んな軽量化の方法が出てくると思います

他にも色んな方法でクロスが実現できるかもしれません

まるで分からない場合は「基礎と改造」ページを読み、簡単なOptionから挑戦してみるといいでしょう

細かい所がどうしても分からない、もしくは解説が間違っているのではないか?などと言う点は掲示板で御願いします

基礎ページでも言っていますが

長いからと言ってASをコピペすると「シンタックスエラー」が出ますのでかならず手打ちでやりましょう


[PR]気になる肌荒れに潤いケア!:山田養蜂場*蜂蜜化粧品お試し1050円