我知道关于等轴测地图的很多建议,但我已经阅读了其中的大部分内容并没有解决我的问题。为了更简单,我为 C# 重写了代码(此代码将在 Android 平台上使用)我需要将屏幕线转换为等距坐标。
在这里,我为我使用了 1:2 的 64x32 瓷砖,我使用此代码构建了菱形地图
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;
}
主要问题是如何在鼠标下获得瓷砖哪个公式对我有用。