スポンサーサイト

--. . --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

複雑な軌道を描く

2008. . 29
ParaFlaソースで複雑な軌道を作るとき。
矢印の表示時間が長い方がいいこともあると思います。

そんな感じの話。
Lunaticのような場合、速度はたいてい固定させるのが普通でしょうから、
移動部分は自由に作ればいいのですが、
矢印の出現時間は速度によって違います。

そこで。
「オプション設定」の「Speed」ラベル、または「オプション初期化」ラベル部分で
こんな変数を探してみます。

 _root.set_cnt  // 矢印の出現時間(1倍速のとき150)
 _root.spdDel   // 倍速を変えたときの端数(中途半端な倍速のときに使用)

上側は、もろに出現時間を表してます。
つまり、この数を大きくすれば、長い時間矢印を移動させることができます。


そして次。
デフォルトでは、矢印は常に、上方向か下方向に進んでいます。
これを解除するには、メインの「スタート初期化」で
function move_arrow内に

this._y -= _root.revn[j] * mix_spd;

こんなASがあると思います。これを消して自分で軌道を描けば良いです。
(ここを消してそのまま起動すると矢印が動かなくなるので注意)

矢印のスタート地点は y=370, 終了地点は y=50。
しかし、判定の関係もありますから y=55くらいまでにして、
後はまっすぐ流すのがいいですかね。


さて。どうやって軌道を描けばいいのか。
これはやり方がいろいろあると思います。
まず地道にやる方法としては、「配列」を使う方法があります。
あらかじめ軌道を数値で決めておく方法で、
地味で面倒で軌道が分かりにくいという欠点はあるものの、
多分動作にはそんなに影響しないだろうという方法です。

_root.motionX=new Array();  // x座標の軌道
_root.motionY=new Array();  // y座標の軌道


こんな感じで用意しておいて、

_root.motionX=[2,2,2,4,3,......];
_root.motionY=[0,-2,-4,-6,.....];


とどんどん数値を入れていきます。
ここで、上の数字は「1フレームでどのくらい移動するか」を表します。

_root.set_cnt=200;

にしたなら、215くらいまでやっておくのがベストかも。判定で止まったらまずいですしね。
設定したら、先ほど this._y-=...;
で消したところか、あるいは矢印別なら[le_s][do_s]...の部分のASに

var getC = _root.set_cnt-this.count+14;
this._y -= _root.motionY[getC];  // y座標の移動
this._x -= _root.motionX[getC];  // x座標の移動


まぁ面倒ですよね。
最終的にステップゾーンの位置に持っていかなくてはいけませんしね。


と言うわけで、何か関数を持ってきてやる方法があるわけですが、
ここでは説明しません。
自分のやりたい軌道は各自違いますし、調べればある程度出てきますからね・・・
2次関数、3次関数あたりなら比較的簡単になりますけどね。
スポンサーサイト

comment

post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackback

trackbackURL:http://alprime.blog91.fc2.com/tb.php/84-9b15e62b
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。