2009年01月29日

グラディウスのオプションを作った

グラディウスのオプションを作ってみました。
(Flash8で作成)
何で違う事やってんの!?って感じですが大人の事情です。

動作確認はこちらをクリック


※自機は最初からステージに配置し、
myshipというインスタンス名にしています。
オプションも特にインスタンス名は付けていませんが、
3つ程最初からステージに配置しています。


これには配列を使います。
自機の過去の座標を、配列に記憶させておき、
自機の動きをトレースさせます。

配列に関しての説明は今回ありませんので、
配列の基礎等は他のサイトを参考にして下さいm(__)m


まずは、X座標用とY座標用の配列を作っておきます。

今回は判り易いようにroot上に作って、パスも絶対パスを使ってます。

_root.optionx = new Array(20);
_root.optiony = new Array(20);

要素数はとりあえず20にしておきました。
20フレーム分の座標を記憶させておけます。



次に、自機の座標を配列に入れていく処理です。
絶対パスにしているので何処に書いても良いですが、
毎フレーム実行されるようにして下さい。
MC内に書くのであればonClipEvent (enterFrame) { }内に記述ですね。



_root.optionx.unshift(_root.myship._x);
_root.optiony.unshift(_root.myship._y);
_root.optionx.pop();
_root.optiony.pop();

unshift()は配列の先頭にカッコ内の値(引数)を挿入するメソッドです。
_root.myship._xは自機の座標なので、
現在の自機座標を配列の先頭であるoptionx[0]へ入れている事になります。
この際に元々入っていた値は、後ろへ全体的にズレます。


しかし、ズレた影響で配列の要素が1個増えてしまいます。
このままでは毎フレームごとに増えて大変なことになるので
optionx.pop();を使って一番後ろの箱を消します。

pop()は配列の最後の要素を取り除くメソッドです。



ということで、毎フレームごとに自機の座標を取得して
配列の先頭に挿入していく事になるので
配列の前の方は自機の最近の座標、後ろの方は自機の古い座標が収納されている事になります。



次に1番目のオプションへ以下のように記述します

onClipEvent (enterFrame) {

this._x =_root.optionx[4] ;
this._y =_root.optiony[4] ;
}

2番目のオプションへ以下のように記述します

onClipEvent (enterFrame) {

this._x =_root.optionx[8] ;
this._y =_root.optiony[8] ;
}


1番目のオプションは4フレーム前の自機座標、
2番目のオプションは8フレーム前の自機座標を自分の座標にしています。


これでオプションの動きが完成です。



ですが、グラディウスのオプションは自機が止まっている間は動きませんね。
上記の処理だと自機が止まってもオプションは止まらず、自機に重なってきます。


これを防ぐ為に条件式を付けます。

if (_root.optionx[0] != _root.myship._x || _root.optiony[0] != _root.myship._y) {
_root.optionx.unshift(_root.myship._x);
_root.optiony.unshift(_root.myship._y);
_root.optionx.pop();
_root.optiony.pop();
}

配列に格納した最新の座標optionx[0]と現在の自機の座標を比べて、
違った場合(自機が動いていた場合)のみ処理を実行するようにします。
これで、自機が止まるとオプションも止まります。


今回はサンプルflaファイル作りました(Flash8で作成)
こちらをクリック
※配列への座標挿入処理は自機に記載しています。



素人なので変な処理をしている可能性もあります。
ご了承下さい。
posted by ケン at 20:34 | Comment(0) | TrackBack(0) | 実験 | このブログの読者になる | 更新情報をチェックする

2009年01月18日

アイテム類半分ぐらい

3話目のアイテムと設置物をボチボチ描いてます。

設置物の描画角度が、ちゃんと考えられていない事に気付いた。


高さの低い物は上部も見えるし、高い物の上部は見えない
自分より右にある物と左にある物は見える角度が違う。

当たり前なのに余り意識してなかった
ちょっと困った・・


明らかに不自然なやつぐらいは、直していきますか。




posted by ケン at 19:25 | Comment(3) | TrackBack(0) | Flah脱出ノベル? | このブログの読者になる | 更新情報をチェックする

2009年01月12日

第三話の案がまとまった

やっとこさ第三話の探索パート案がまとまりました。
色々と作品を遣ってる影響もあるんでしょうが、
ネタを考えてもだいたいどこかで
使われてるようなものなんですよね(笑)

あと、
アイテムを見つける
アイテムを組み合わせる
アイテムを使う
パスワードを入れる
の4つしか覚えてないので作れる範囲も狭いです。
他にも覚えろよって話ですが・・・(^_^;)
慣れてきたら、他にも勉強していきます。

でも、慣れる前に仕掛けネタが既に無いんですよね〜
先は長そうです。

posted by ケン at 09:35 | Comment(0) | TrackBack(0) | Flah脱出ノベル? | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。