DxOpalに半透明追加とはじめてのコミット

ボスの攻撃を加算αで描画したかったので、DxOpalのSpliteに半透明の機能を追加してみた。


左から、通常描画、通常α合成、加算合成。
DxRuby(DirectX)を参考にHTML5でも同じ動作をするように実装してみた。

使い方はSpriteクラスにalpha(透過度0~255)とblend(ブレンドタイプ)を指定する。
ブレンドタイプは
:alpha(通常ブレンド)と:add(加算合成)のみ
とりあえずこの二つがあればなんとかなりそうなので残りの実装は省略。
(減算もちょっと調べてみたけどブラウザによって実装が違うとかなんとか)

  # スプライト内で加算合成する例
  self.alpha = 127
  self.blend = :add

  # draw_exのオプションで色々指定する例
  Window.draw_ex(10, 60, Image[:p_wave])
  Window.draw_ex(210, 60, Image[:p_wave], alpha: 90)
  Window.draw_ex(410, 60, Image[:p_wave], alpha: 220, blend: :add)

そして問題はDxOpal本体へのフィードバッグなのだが、今までGitHubへのミットしたことが無かったので、入門サイトで勉強しながら見様見真似でRullRequestを作ってみた。
https://github.com/yhara/dxopal/commit/1ced2ce13388fad2dcbf06b0222d7e0968a390d0
先ほど無事マージされたので、ねんがんのオープンソースコミュニティの一員になれた気がする。

0