等角投影図については多くのアドバイスがあることは知っていますが、それらのほとんどを読んでも問題は解決しませんでした。もっと簡単にするために C# のコードを書き直します (このコードは Android プラットフォームで使用されます)。
では、64x32 の 1:2 タイルを使用して、このコードを使用してダイヤモンド マップを作成します。
private void drawIsoGrid(PaintEventArgs e)
{
for(int y=0;y<20;y++)
for(int x=0;x<20;x++)
{
float rx = (x - y) * (surface.Width) / 2 - globX;
float ry = (x + y) * (surface.Height) / 2 - globY;
e.Graphics.DrawImage(surface,rx,ry);
}
ここでマップコードをスクロールするためにグローバルアンカーも使用します
protected override void OnMouseMove(MouseEventArgs e)
{
mouseCoordsX = e.X;
mouseCoordsY = e.Y;
if(e.Button==MouseButtons.Left)
{
globX += prevX - e.X;
globY += prevY - e.Y;
this.Invalidate();
}
prevX = e.X;
prevY = e.Y;
}
主な問題は、どの式が私にとって役立つマウスの下にタイルを取得するかです。