色の掛け算ができれば結構便利なので掛け算を実装します。
あと、今のままだと設定した色が取得できないのでそちらも実装します。
掛け算を実装しましょう。
といっても、各メンバを掛けるだけですが。。。
// 掛け算 public void Mul( Color rhs ) { m_R *= rhs.m_R; m_G *= rhs.m_G; m_B *= rhs.m_B; m_A *= rhs.m_A; }
この計算を全体に適応すると黒フェードができるようになります。
黒フェードは画面の一番上に黒いテクスチャを描画する方法もありますが
処理負荷的に色を掛け算するほうが優れてます。
次は取得です。
floatの0.0~1.0で取得するメソッドです。
// 各色取得 public float GetR() { return m_R; } public float GetG() { return m_G; } public float GetB() { return m_B; } public float GetA() { return m_A; }
あと、整数値で0~255の値を取れるようにもしておきます。
public int GetRI() { return _ConvertFtoI( m_R ); } public int GetGI() { return _ConvertFtoI( m_G ); } public int GetBI() { return _ConvertFtoI( m_B ); } public int GetAI() { return _ConvertFtoI( m_A ); } // 整数型で色取得 private int _ConvertFtoI( float color ) { return ( int )( color * 255.0f ); }
単純に各成分を255倍してintにキャストしているだけです。
これでひと通り必要なメソッドは揃いました。
あとは、よく使う白とか黒とかを簡単に作れると便利そうです。
次はそのメソッドを実装してみましょう。