【发布时间】:2012-02-27 18:55:30
【问题描述】:
我知道关于等轴测地图的很多建议,但我已经阅读了大部分建议,但并没有解决我的问题。 为了更简单,我为 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;
}
主要问题是如何在鼠标下获得瓷砖哪个公式对我有用。
【问题讨论】: