「EnDlEss DREamER」ブログ

最近はunity5メインで活動中。以前はツクールRGSSネタなど。

§ 難航してます。

今日やっているのは・・・・

・攻撃時の移動方法(小ジャンプで前進「FF6風」)

・スキルでのアクション動作設定

の2つで、攻撃時の移動については問題なく動作。

難航しているのはやはりというか、スキルアクション。

頑張って、骨組みは完成させたんだけど、動作が上手くいかない。

動作以前に難航していたのは「メモ欄の取得」。



形式として

「<action:[アクションパターンID,武器振りフラグ,アニメーションID],・・・・・>」


という形でメモ欄に使用の際は記入して頂く形になるんだけど

なにせ、このメモ欄は「Rege_xp」クラスで「正規表現」と呼ばれる結構めんどい場所。

メモ欄で取得されるのは「文字列」「String」クラスで、全てが文字列として扱われる。

見た目には2次配列なんだけど、これをスクリプト内でちゃんとした配列に変換するのが・・・・・・




で、ググって見つけたのがここ

http://www.rubular.com/

「Your regular expression:」が、スクリプト内に記述する正規表現

「Your test string:」が取得したい文字

いちいち、テストプレイをしなくてもどういう値が取得出来るか確認できる。



スクリプト関係者しか分からないんだけど、ちょっと説明。

まずはメモ欄を正規表現で取得。

次に「$&.scan().each { }」で取得した文字列をさらにscanメソッドで

[アクションパターンID,武器振りフラグ,アニメーションID]
(正規表現だと「\[\d+[,]\d+[,]\d+\]」となる)

で個別に取得。

この際に「[」と「]」を抜いて値を取得する。

正規表現だと「\[」と「\]」となる部分を抜く。

まだ、この段階では文字列である。ただし、形は配列っぽくなっている。

scanメソッドでやってる中にさらにscanメソッドでやっている。

抜いた「[」と「]」のおかげでここでようやくメモ欄で設定した配列の形をした部分の値が取得出来る。

で、この場合3つの要素があるのでそれぞれ「to_i」メソッドで文字列の数字を「整数」に変換する。

ローカル変数の配列を作って「push」メソッドでこの3つの値を「まとめて配列に入れる」

この直後に「flatten!」メソッドで配列をフラットにするのを忘れずに。

ようやく2つめのscanを抜けてインスタンス変数にローカル変数の配列を代入してやる。

そうして始めてアクションの動作を1パターンごとにメモ欄から取得してスプライトクラスへ持って行ける。



で、今難航しているのがそのスプライトクラスの動作。

スプライトクラスで動作を設定し、アクションパターンを取得して、case文で分岐も完了した。

あとは、地道なテストプレイを重ねてエラーをツブしていく作業。

夜からその辺りをやってるんだけど、一向に進まない。




なんでメモ欄からアクション動作を取得させようかというと

スクリプトの使えない人はデータベース設定の方が使いやすいのでは?

という思い込みと憶測。

とゆーか、俺自身もスクリプト内でスキルとかを個別に動作設定するのってめんどうだし。

メモ欄の方が手っ取り早い。




ちなみに、拡張スクリプトは既に1200行を超えた。

スプライトクラスがすごいことになっている。


2009/10/15/Thu 00:10:54  VX RGSS2/CM:0/TB:0/
new 「バトルレイアウト変更:extension」公開 / MAIN / 今日の成果 old

COMMENT

COMMENT POST

/
/
/
/



 
 内緒です♪

TRACK BACK

  この記事のURL:
   http://edlogtkool.blog36.fc2.com/tb.php/421-75c87a82


MAIN
copyright © 2006 「EnDlEss DREamER」ブログ. All Rights Reserved.
Template by TAE-3rd☆テンプレート工房