遭遇した問題への備忘録です。
対処法
DxLibDotNet(@VB)ではDX.TRUEとTrueは等価ではないので、DrawGraph系関数を含め使用時には確認が必要です。
状況
DxLibDotNetで、DrawGraph系関数で透過を有効にして画像を2枚描画しようとすると、2回目に描画=表に来る画像が、1回目に描画=裏の画像と同じデータで描画されるという状況が発生しました。
つまり、2種類の画像を描画しているはずなのに、1種類の画像が2度描画されるという状況になっていました。
原因
上に書いた通り、VBではDX.TRUEとTrueは等価ではありません。描画関数ではDX.TRUEを指定すべきところ、Trueを指定していたためにこのような症状が発生したようです。
DX.FalseとFalseは等価のようで、使い分けのミスに気付くのが遅れました。
余談
知り合いの方に『DXライブラリは今では古いC系言語に合わせて設計されたもので、当時と今とで定数値は同じ用語が使われていても違う場合があり、特に「True」は中の値が異なることが多い。Falseはほぼ確実に0が入るため、そういった環境ではTrueよりFalseで比較をした方が安全だ』ということを教えていただきました。気を付けます。