私は最近、アレグロ5で在庫システムを作成しようとしました。そこでは、20x20の正方形のグリッドを描画し、アイテムをドラッグドロップします。問題は、アイテムのスプライトが実際に描いたグリッドの下にあるのを見ることができることです。これは望ましくない効果です。これが私のコードです:
if(draw)
{
draw = false;
al_draw_bitmap(image, item.posx, item.posy, 0);
if(mouseKey)
{
grab = true;
item.posx = mouse.posx - (item.boundx-5);
item.posy = mouse.posy - (item.boundy-5);
}
else if(mouseKey == false && grab == true)
{
for(int i = 0; i < mouse.posx; i += 20)
{
if(i < mouse.posx)
item.posx = i;
}
for(int j = 0; j < mouse.posy; j += 20)
{
if(j < mouse.posy)
{
item.posy = j;
}
}
grab = false;
}
for(int i = 0; i <= width; i += 20)
{
al_draw_line(i, 0, i, height, al_map_rgb(0, 0, 0), 1);
al_draw_line(0, i, width, i, al_map_rgb(0, 0, 0), 1);
}
al_flip_display();
al_clear_to_color(al_map_rgb(40,40,40));
}
(私はそれがひどく書かれていて最適化されていないことを知っていますが、私は単にテストとしてそれを約10分で書きました)
アイテムスプライトに線が表示されないようにするにはどうすればよいですか?漠然としすぎた場合の問題の例を次に示します。
WindowsXPでCodeblocksIDEを使用しています