トップページ > 記事閲覧
Android版のSetDrawAddColorのバグ...?
名前:barrier 日時: 2023/02/26 19:18

自分以外のAndroid端末でも確認できたバグなので一応報告しておきます int android_main(){ SetGraphMode(1280,720,32); if (DxLib_Init() == -1){return -1;} SetDrawScreen(DX_SCREEN_BACK); while (ProcessMessage() != -1){ SetDrawAddColor(-128,0,0); DrawBox(0,0,50,50,GetColor(255,255,255),TRUE); SetDrawAddColor(0,-128,0); DrawBox(50,0,100,50,GetColor(255,255,255),TRUE); SetDrawAddColor(0,0,-128); DrawBox(100,0,150,50,GetColor(255,255,255),TRUE); SetDrawAddColor(0,0,0); ScreenFlip(); ClearDrawScreen(); } DxLib_End(); return 0; } このような感じで書いても正常に色が変わりません お時間がある時に確認していただけると幸いです
メンテ

Page: 1 |

Re: Android版のSetDrawAddColorのバグ...? ( No.1 )
名前:管理人 日時:2023/02/28 02:17

ご報告ありがとうございます 手元の環境でも色が変わらない現象を確認できました 原因を調べてみたのですが、単純なテストとコードを確認した上では特に問題がみつかりませんでした 少し時間を掛けて調べる必要がありそうなので、修正は次の週末になるかもしれません m(_ _;m
メンテ
Re: Android版のSetDrawAddColorのバグ...? ( No.2 )
名前:管理人 日時:2023/02/28 05:38

寝る支度をしているときに唐突に原因が思いつき、先程修正できました よろしければこちらの修正版をお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibAndroidTest.zip // Android版
メンテ
Re: Android版のSetDrawAddColorのバグ...? ( No.3 )
名前:barrier(解決) 日時:2023/02/28 19:53

ちゃんと予想通りの挙動になりました! ありがとうございます! これにて解決とさせていただきます!
メンテ
Re: Android版のSetDrawAddColorのバグ...? ( No.4 )
名前:Naohiro19 日時:2023/03/01 20:39

このコードは、DxLibを使用してウィンドウを作成し、3つの四角形を描画し、それぞれ異なる色を与えるものです。 しかし、問題があるようです。 問題は、 SetDrawAddColor() 関数を使用して、描画時に加算色を指定している点にあります。 この関数は、現在の描画色に対して加算色を指定するものであり、 現在の描画色が (0, 0, 0) の場合、加算色を指定しても何も表示されません。 これを修正するためには、 SetDrawBlendMode() 関数を使用してブレンドモードを設定することが必要です。 例えば、以下のように修正することができます。 int android_main(){ SetGraphMode(1280,720,32); if (DxLib_Init() == -1){return -1;} SetDrawScreen(DX_SCREEN_BACK); SetDrawBlendMode(DX_BLENDMODE_ADD, 255); while (ProcessMessage() != -1){ DrawBox(0,0,50,50,GetColor(255,-128,-128),TRUE); DrawBox(50,0,100,50,GetColor(-128,255,-128),TRUE); DrawBox(100,0,150,50,GetColor(-128,-128,255),TRUE); ScreenFlip(); ClearDrawScreen(); } DxLib_End(); return 0; } この修正により、正常に色が変化することが確認できます。
メンテ
Re: Android版のSetDrawAddColorのバグ...? ( No.5 )
名前:管理人(解決) 日時:2023/03/02 02:44

> Naohiro19さん こちらは ChatGPT の出力テキストでしょうか? barrierさんのプログラムは SetDrawAddColor の不具合を再現するためのプログラムなので 『SetDrawAddColor を使用する必要がない』 との指摘は的外れな回答となっています… あと、代わりとなるプログラムとして DrawBox(0,0,50,50,GetColor(255,-128,-128),TRUE); DrawBox(50,0,100,50,GetColor(-128,255,-128),TRUE); DrawBox(100,0,150,50,GetColor(-128,-128,255),TRUE); が提示されていますが、正しくは DrawBox(0,0,50,50,GetColor(127,255,255),TRUE); DrawBox(50,0,100,50,GetColor(255,127,255),TRUE); DrawBox(100,0,150,50,GetColor(255,255,127),TRUE); となります このように ChatGPT の回答は間違いがあることが多いので、あまり出力された 内容をそのまま投稿するのは控えたほうが良いと思います
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存