日記 > ゲーム制作 > 半透明の描画

日記 (2014 年 9 月 18 日)

人工言語の方が一段落ついた (気がする) ので、 ゲーム制作の方を再開しようと思います。

さて、 Java の Swing で画像を半透明にして描画する方法を探していたのですが、 AlphaComposite クラスを使うようです。 こんな感じですね。 コードは JRuby です。

graphics.composite = AlphaComposite.get_instance(AlphaComposite::SRC_OVER, alpha)

まわりくどい! ・・・そんなわけで、 Graphics2D クラスを拡張しておきましょう。

class Graphics2D
  def alpha
    return self.composite.alpha
  end
  def alpha=(alpha)
    self.composite = AlphaComposite.get_instance(AlphaComposite::SRC_OVER, alpha)
  end
end

これですっきりコードが書けますね。

さて、 便利な半透明描画ですが、 どうやら少し重いようです。 JRuby だからでしょうか。 気楽にコードが書けるので JRuby は好きなんですが、 Java とか Scala とかに比べると速度があまり出ませんね。 Scala に移った方が良いんでしょうか・・・。

Copyright © 2009‐2016 Ziphil, All rights reserved.
inserted by FC2 system