Maidensnow Online うさたんの

スポンサーサイト

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

うさたんの

rgssつぶやき。まとめ。

 専用の変数を持つことは避けられないとして。
・その変数を参照する時はメソッドを通す。
・参照するとき、初期値がない場合に初期化する。
(@変数名 ||= 初期値)だけで実装可能。
ぐらいの競合・誤動作回避は入れましょう。
手伝いで素材の競合を解消してるとよく思うこと。

と思ったらrgssタグすたれてるわね。
#rgss


他のクラスにincludeするタイプのモジュールで、
include先のクラスからのsuperを受けて更にsuperで上のクラスに引き渡す場合は、
“def initialize(*var)”
のように、任意数の引数を取るようにすると大体安心。
#rgss


object.is_a?(klass) や klass === object などの、クラスを判定するメソッドは、
includeしたモジュールにも反応するので、これを利用すると、
Aceと無印で継承構造が違ってるクラスの判定をスムーズにしたりできる。

ハッシュ {} を使う場合、hash.default = 値を実行したり、
Hash.new(値) で生成するなどして、初期値を与えておくと、
キーがない要素を参照した時に 値 を返してくれるので、
スキル熟練度みたいな、キーの有無に個人差があるものに便利。

ただし、初期値にArrayやHash、Stringのような破壊的変更ができるオブジェクトを指定すると、
hash[key] << obj のような処理をしたときに、初期値が変更されてしまうので注意が必要。

こういう場合は、Hash.new {|hash, key| hash[key] = [] } のように、初期化式を与えてやると、
存在しないキーが参照されるたびに、そのキーの値に新しい [] が入るので、安全。

ただし、初期化式を持ったHashはMarshal.dumpできないため、
セーブの対象になるオブジェクトに持たせると、エラーが発生してしまいます。
#rgss


nilの場合に例外処理をするより、NilClassにメソッドを定義する方が簡便安定。
それが多岐に渡るなら、最低でもnil以外のダミーが返る方がより安定。
全て例外処理にしたのが無印で、後者を採択したのがAce。
無印素材を配布するなら、前者を組み込むと楽。みんなが。

また、スキルに特定の効果が備わっているかを判定するときには、calc_mp_cost(obj)と同じように、
バトラーのメソッドを通すようにすると、改変の際に加工する箇所が一箇所に絞られ、非常に拡張性も高くなりますね。

まあ、別にAce式でもいいのですが。
単純加算式じゃない処理というのもままあるでしょうしね。武器を反映するとかしないとか。
#rgss



少し前にハッシュや文字列をキャッシュしとく話が出ていたようですが。
同じように、破壊的メソッドを適宜使用していくことで、大幅にオブジェクトの乱造を抑えることができます。

StringやArrayは、+-&|等の演算子の度に、新しいオブジェクトを生成して値を返します。
つまり、Aceの標準にある、
feature_objects.inject([]){|result, obj| result |= obj.param }

みたいな処理は、feature_objectsの数だけ配列を作る処理になるわけです。
これを、
feature_objects.inject([]){|result, obj| result.concat(obj.param) }.uniq
と改変すると、

初期値の [] と、uniqした結果のresultと、uniqの結果取り除かれた要素の配列、三つの配列しか生成されず、効率的になります。
concatは、いわば+=の破壊的メソッド版です。

この様に、生成されるオブジェクトを大幅に減らすことができる破壊的メソッドですが、名前のとおり元のオブジェクトを
“破壊的に”変更してしまうため、データベースの値を直接読み込んで、それに対して実行すると大変なことになるので注意しましょう。

・×・) ・・・(スクリプト記述を実例すると恐ろしく文字数を食うある・・・)

(・・・uniqは取り除いた配列は作らなかった気がする。まあ、いいか・・・)

(なお、-&|に該当する破壊的メソッドはありません・・・。
キャッシュ用のハッシュを使って擬似的にそれらの処理をする仕組みなら今考え付いたけど・・・)

(ぶっちゃけ、そこまで変質的になっても仕方ない・・・ 速度を稼ぐという目的はあれど、
rubyが“オブジェクト指向である”事に反抗する行為なのだから・・・。ってrubylistが言ってた気がする・・・)
#rgss

スポンサーサイト

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

まとめ【うさたんの】

rgssつぶやき。まとめ。

まとめ【うさたんの】

rgssつぶやき。まとめ。

コメントの投稿

Secret

HELP ミィ~

はじめまして。
メイデンスノウの妖怪大魔境をダウンロードし、ブログの中に隠されているというPASSを探しているのですが、どうしても見つかりません><

どうしてもやってみたいという気持ちが抑えきれず、コメントさせていただきました。できましたら助けていただけないでしょうか。よろしくお願いいたします。

No title

プロフィールをよく読んであげて下さい

解決しました・□・>

見つけることができました>▽<(こんなところにあったとは・・・)
ありがとうございました♪

No title

期限が・・・

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

レビュー許可申請

どうも、すいかのゲームブログというサイトでレビューを行っている者です。機会があれば、ゲームをレビューしたいのですが、その時のためにサイトへのリンク貼り、ゲームのスクリーンショット掲載を含めた許可をいただければ幸いです。

No title

つ拍手ボタン
拍手で送るのが一番早くうさたんに伝わるかと思われます。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: レビュー許可申請

> どうも、すいかのゲームブログというサイトでレビューを行っている者です。
> 機会があれば、ゲームをレビューしたいのですが、その時のためにサイトへのリンク貼り、
> ゲームのスクリーンショット掲載を含めた許可をいただければ幸いです。

・×・)ノ 多分ダメと言うことは無いと思いますが、実際にやるときにまたご確認ください。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
第二回!
プロフィール

Author:暴兎(あばれうさぎ)
自分のやりたいゲームを開発しているうさぎ目。
がぞうはまだない。
好きないいところだぞはフクオカはいい所だぞ。
現在のカイトゥぱすは usabox。

HP:Cafe Clock Rabbit
素材利用規約
ゲームダウンロード
ふぐぁいとFAQ

banner


"メイデンスノウの妖怪大魔境シリーズ"
では、●MACK●様作成のキャラクターグラフィックを改造したりばらしたりして利用させていただいております。


れんらくさき
Maidensnowあっとほっとめーる.co.jp

検索フォーム
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ

しつもんばこ
今はこれ(に答えるの)が精一杯。
ブロとも申請フォーム

この人とブロともになる

リンク
新・ツクールリング 新ツクールリング HOMEへ 5つ先 1つ先 1つ前 5つ前 リスト 登録 ランダム 富士通 ARROWS Tab Wi-Fi
javascript:void(0);
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。