トップページ > 記事閲覧
DrawBoxAAついて
名前:kokosan60 日時: 2023/02/06 13:01

DrawBoxAAについて、 現在迷路のプログラムを作成しているのですが、、 DrawBoxAAでマスの描画にて、 境界線が見えてしまい、 境界線を見れなくするようにしたいです。 現状、背景(道含む)をGetColor(255, 255, 255)、壁をGetColor(0, 0, 150)で描画しています。 実際に描画したときの画像となります。 ttps://kokosan60.com/maze.png 過去ログにて、 ttps://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=4218 加算ブレンドにするといい との書き込みがありましたので、試してみましたが、 背景が白のためか、すべて白で描画されてしまいました。 解決策ありますでしょうか。 ※全部記載となると量が多くなってしまうので、描画部分のみのコードを記載します。  必要とあればプロジェクトごとアップいたします。 const int bk = GetColor(0, 0, 0); const int wh = GetColor(255, 255, 255); const int red = GetColor(255, 0, 0); const int org = GetColor(255, 165, 0); const int yel = GetColor(255, 255, 0); const int blue = GetColor(0, 0, 150); void disp_maze(const vector<vector<int>> masu) { int DesktopW, DesktopH; GetDefaultState(&DesktopW, &DesktopH, NULL); //描画先のディスプレイのサイズ取得 DesktopW = (int)(DesktopW * (SCALE - 0.1)); DesktopH = (int)(DesktopH * (SCALE - 0.1)); int max_string_wide = 0; //メニュー文字幅最大値 for (int i = 0; i < MAX_SUB_MENU_CNT; i++) { if (max_string_wide < GetDrawStringWidth(menu_name[i], -1)) { max_string_wide = GetDrawStringWidth(menu_name[i], -1); } } DesktopW -= max_string_wide; float masu_size = 0; const int tate = (int)masu.size(); const int yoko = (int)masu[0].size(); if (DesktopW / yoko > DesktopH / tate) { masu_size = (float)DesktopH / (tate); } else { masu_size = (float)DesktopW / (yoko); } for (int i = 0; i < tate; i++) { for (int j = 0; j < yoko; j++) { int cr; switch (masu[i][j]) { case wall: cr = blue; break; case road: cr = wh; break; case ansroad: cr = yel; break; } // 加算ブレンドに変更 //SetDrawBlendMode(DX_BLENDMODE_ADD, 1); DrawBoxAA(masu_size * j, masu_size * i, masu_size * (j + 1), masu_size * (i + 1), cr, true); // 元に戻す //SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 255); } } ScreenFlip(); }
メンテ

Page: 1 |

Re: DrawBoxAAついて ( No.1 )
名前:管理人 日時:2023/02/06 23:35

DrawBoxAA は隙間なく四角形を敷き詰めて描画を行うのには向いていませんので DrawBoxAA の代わりに DrawBox を使用するようにしてください m(_ _)m
メンテ
Re: DrawBoxAAついて ( No.2 )
名前:kokosan60(解決) 日時:2023/02/07 08:49

floatが使えるのがいいと思っていたのですが。。。 仕方がないので、DrawBoxを使用することといたします。 ありがとうございました。
メンテ

Page: 1 |

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

   クッキー保存