找出滑鼠点击进入的方块


9

我正在开发基于等距网格的游戏,并且在尝试将鼠标单击从用户链接到图块时遇到问题。我已经能够将问题分为两部分:

  • 找到一个围绕瓷砖的矩形(我已经能够做到)
  • 从矩形中找出点击的瓷砖(让我感到困惑)

这是一个内部有图块的矩形的示例:

矩形包含瓷砖

矩形长70像素,高30像素,所以如果我使用30x(top)/ 20y(left)的输入,我将如何确定该像素落入哪个图块?



坐标更改然后再检查怎么办?如果您的瓷砖上有许多环片,那么您肯定会使用极坐标系。
FxIII

Answers:


8

在x方向上进行的每一步,您都将向左移动35px,将-15px向上移动到画布;

在y方向上进行的每一步,都将向左移动-35像素,向上移动-15像素;

瓷砖到笛卡尔

这意味着您可以轻松地以像素为单位转换瓦片坐标系:

(x,y)=>(35·x,-15·x)+(-35·y,-15·y)=(35·x-35·y,-15·x-15·y)=( Xpx,Ypx)

您必须解决已知的Xpx和Ypx以及想知道x和y(在图块坐标中)的反问题。

Xpx = 35·x-35·y;

Ypx = -15·x-15·y;

您能解决这个问题吗?应该是:

x = 1/70·Xpx-1/30·Ypx

y = -1 / 1/70·Xpx-1/30·Ypx

显然,在一般情况下,您将具有非整数值:取x和y的ceil都将为您提供整个图块的坐标。


矩形长70像素,然后步长35像素而不是
像素
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.