さて、タイルセットを保持する画像があります。次に、PictureBox を「ゲーム画面」として使用します。コードで行うことは、タイル セット (タイル) のスニペットを取得し、それをゲーム画面に配置することだけです。
これが私のコードです。
private void picMap_Click(object sender, EventArgs e)
{
//screenMain = picMap.CreateGraphics();
// Create image.
//gfxTiles = Image.FromFile(@Program.resourceMapFilePath + "poatiles.png");
// Create coordinates for upper-left corner of image.
int x = 0;
int y = 0;
// Create rectangle for source image.
Rectangle srcRect = new Rectangle(16, 16, 16, 16);
GraphicsUnit units = GraphicsUnit.Pixel;
// Draw image to screen.
screenMain.DrawImage(gfxTiles, x, y, srcRect, units);
screenMain.DrawImage(gfxTiles, 16, 0, srcRect, units);
screenMain.DrawImage(gfxTiles, 32, 0, srcRect, units);
screenMain.DrawImage(gfxTiles, 16, 16, srcRect, units);
}
そして、ここに私の出力があります:
各「タイル」の間にそのスペースがある理由は何ですか (2 ピクセルのギャップです)。コードをゲットーリグすることもできますが、代数を使用してタイルをどこに移動する必要があるかなどをプログラムで把握する予定なので、ゲットーリグは機能しますが、ゲーム全体でそれを行うのは面倒で、少なくとも、ずさんな。