独学ツクールブログ

ツクールでのオリジナル作品の話を中心に創作関係の徒然な語り。

<< 真・プリセットスクリプトフルグレードアップ計画1:相変わらず舌の根が乾かない人 | main | ちょっと進展 >>

[ - ] スポンサーサイト

一定期間更新がないため広告を表示しています

| 2018.05.23 Wednesday | - | - |

[ RGSS奮闘記 ] 真・プリセットスクリプトフルグレードアップ計画2:忘れ物と比較いろいろ

まずは前回の漏れから。
Object#tryを使う場合、対象のオブジェクトがnilになる場合を考慮しなくてはいけない。つまりNilClass#tryも必要だった。
class NilClass
  def try(*args)
    nil
  end
end
これで、どんな時もtryは使える。



次に、いろんなクラスの比較メソッドを修正する。特に、異なるクラスのオブジェクトと比較するとエラーになるクラス(Color、Rect、Tone)は直しておかないと面倒だ。 この辺はRGSS Service Packでも触れている。

class Bitmap
  def ==(other)
    return false if width != other.width || height != other.height
    return false if font != other.font
    height.times{|y|
      width.times{|x|
        return false if get_pixel(x, y) != other.get_pixel(x, y)
      }
    }
    return true
  end
end
class Color
  alias :new_eql :== unless method_defined?(:new_eql)
  def ==(other)
    return other.kind_of?(Color) && new_eql(other)
  end
end
class Font
  def ==(other)
    return other.kind_of?(Font) &&
           name   == other.name &&
           size   == other.size &&
           bold   == other.bold &&
           italic == other.italic &&
           color  == other.color
  end
end
class Rect
  alias :new_eql :== unless method_defined?(:new_eql)
  def ==(other)
    return other.kind_of?(Rect) && new_eql(other)
  end
end
class Table
  def ==(other)
    return Marshal.dump(self) == Marshal.dump(other)
  end
end
class Tone
  alias :new_eql :== unless method_defined?(:new_eql)
  def ==(other)
    return other.kind_of?(Tone) && new_eql(other)
  end
end
細かく言うと長くなるので、どう変えたかだけ。
Bitmap、Font、Tableでは、デフォルトでは同じオブジェクトじゃないとfalseになっていたものを「データが同じなら」trueとなるように変更。
Color、Rect、Toneでは、すでに言ったようにほかのクラスのオブジェクトと比較できるように変更。
というところで、今日もこの辺でいったん終了。

タグ:[RGSS] [フルグレードアップ計画]

| 2015.02.19 Thursday 23:06 | comments(0) | trackbacks(0) |

[ - ] スポンサーサイト

| 2018.05.23 Wednesday 23:06 | - | - |

コメント

コメントする






この記事のトラックバックURL

トラックバック

このページの先頭へ▲

Twitter

WebClap

Blogram

ブログランキングならblogram

calendar

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>

categories

archives

Amazon

selected entries

recent comment

recent trackback

recent ranking

links

search this site.

sponsored links

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM