【发布时间】:2011-08-02 16:46:12
【问题描述】:
所以我设法自己编写了第一部分(算法)来计算每个图块在绘制这张地图时应该放置的位置(见下文)。但是,我需要能够将鼠标位置转换为适当的单元格,而且我几乎把头发扯掉了,因为我不知道如何从鼠标位置获取单元格。我担心的是它涉及一些相当高的数学或一些我只是简单的东西我无法注意到的东西。
例如,如果鼠标位置是 112;35 我如何计算/转换它以使单元格在该位置是 2;3?
也许这里有一些非常优秀的具有数学思维的程序员会在这方面帮助我,或者知道如何做或者可以提供一些信息的人?
var cord:Point = new Point();
cord.x = (x - 1) * 28 + (y - 1) * 28;
cord.y = (y - 1) * 14 + (x - 1) * (- 14);
说到地图,每个单元格(透明平铺56x28像素)都放置在前一个单元格的中心(或单元格1;1的零位),上面是代码I用于将单元格转换为位置。我尝试了很多关于位置到单元格的方法和计算,但都失败了。
编辑: 在阅读了大量信息后似乎使用屏幕外颜色图(颜色映射到图块)是最快和最有效的解决方案?
【问题讨论】:
-
你用什么画画?许多图形框架(如 OpenGL)都有帮助方法来为您进行鼠标到世界的转换。