Re: DrawRectGraphFについて ( No.1 ) |
- 名前:管理人 日時:2024/05/25 00:53
すみません、DrawRectGraphF は原理上 SrcX, SrcY, Width, Height で指定された
描画元画像の範囲から1ドット外側の部分も描画されてしまうことがあります
なので、申し訳ありませんが SrcX, SrcY, Width, Height で指定する描画元画像の
範囲の外側1ドットは描画されてしまっても問題の無い色( 透明色など )にしておいてください m(_ _;m
|
Re: DrawRectGraphFについて ( No.2 ) |
- 名前:SIN 日時:2024/05/25 09:21
ご返信ありがとうございます。
描画領域について理解しました。ありがとうございます。
ついでの質問で申し訳ないのですが、通常のDrawRectGraphであれば、問題ないのでしょうか。
お忙しいところ恐縮ですが、ご返信いただけると助かります。
|
Re: DrawRectGraphFについて ( No.3 ) |
- 名前:管理人 日時:2024/05/26 03:07
> ついでの質問で申し訳ないのですが、通常のDrawRectGraphであれば、問題ないのでしょうか。
はい、DrawRectGraphF で端の1ドット外側の色が描画されてしまう原因は浮動小数点以下の値を
扱っていることによるものですので、整数値で処理される DrawRectGraph であれば問題は発生しません
|
Re: DrawRectGraphFについて ( No.4 ) |
- 名前:SIN 日時:2024/05/27 10:21
ご返信ありがとうございます。
描画領域について変更を加えたのですが(周り1ドット透明色)、やはり黒い線が出てきます。
申し訳ございませんが、プログラムを送るので確認をしてもらえないでしょうか。
よろしくお願いいたします。
|
Re: DrawRectGraphFについて ( No.5 ) |
- 名前:管理人 日時:2024/05/27 22:49
> 描画領域について変更を加えたのですが(周り1ドット透明色)、やはり黒い線が出てきます。
ううむそうでしたか…
> 申し訳ございませんが、プログラムを送るので確認をしてもらえないでしょうか。
はい、こちらのメールアドレスに
BQE00322(あっとまーく)nifty.com
( (あっとまーく) を @ に置き換えてください )
zip等で圧縮して送っていただければ拝見いたします m(_ _)m
|
Re: DrawRectGraphFについて ( No.6 ) |
- 名前:管理人 日時:2024/06/01 00:36
メールを拝見いたしました
> 描画領域について変更を加えたのですが(周り1ドット透明色)、やはり黒い線が出てきます。
すみません、No.1 のご返信の段階から指定の範囲の外側の1ドットが描画されてしまうことが原因だと
勘違いしていたのですが、最初のご投稿で SINさんが申し上げている通り
『float値で描画している画像を移動させると、位置が微妙にズレて黒い線が現れる』
↑こちらが原因でした
こちらはfloatの計算上にそのようになるものですので、グラボなどは関係ありません
この現象は MakeScreen で作成した仮の画面に対して DrawRectGraphF を使わずに DrawRectGraph を
使用して、浮動小数点以下の値を含まない座標で綺麗にブロックを並べて描画した後、裏画面に対して
仮の画面を DrawGraphF を使用して描画するという方法で防ぐことができます
〜〜〜 初期化のタイミング 〜〜〜
// 仮画面を作成
Screen = MakeScreen( 画面の横幅, 画面の縦幅, TRUE );
〜〜〜 メインループの描画処理 〜〜〜
// 仮の画面を描画先にする
SetDrawScreen( Screen );
// 仮の画面をクリア
ClearDrawScreen();
// ブロックを整数値で綺麗に並べて描画
for( int i = 0; i < ブロックの縦の数; i++ )
{
for( int j = 0; j < ブロックの横の数; j++ )
{
DrawRectGraph( j * 32, i * 32, 0, 0, 32, 32, BlockImage[ 0 ], TRUE ) ;
}
}
// 裏画面に描画先を変更
SetDrawScreen( DX_SCREEN_BACK );
// DrawGraphF を使用して浮動小数点以下の値を含む座標に描画してもブロックとブロックの間の隙間は発生しない
DrawGraphF( 0.5f, 0.0f, Screen, TRUE );
よろしければお試しください m(_ _)m
|
Re: DrawRectGraphFについて(解決) ( No.7 ) |
- 名前:SIN 日時:2024/06/01 17:22
ありがとうございます。
早速、試してみます。
|
Re: DrawRectGraphFについて ( No.8 ) |
- 名前:管理人 日時:2024/06/05 22:02
メールと添付のプログラムを拝見しました
まだ黒いラインが出現してしまうとのことですが、マップチップの描画に DrawRectGraphF を
使用しているのが原因だと思います
No.6 に申し上げました通り DrawRectGraphF ではなく DrawRectGraph を使用していただければ
黒いラインは出なくなると思いますので、よろしければお試しください m(_ _)m
|
Re: DrawRectGraphFについて ( No.9 ) |
- 名前:SIN 日時:2024/06/07 10:43
お世話になっております。
返信が遅くなり申し訳ございません。
ありがとうございます。そちらの部分を見落としておりました。
|