首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动对象时需要帮助

移动对象时需要帮助
EN

Stack Overflow用户
提问于 2010-08-03 22:13:34
回答 1查看 401关注 0票数 0

我需要关于如何移动对象(在我的应用程序中代表机器人的圆圈)的想法。

对象将在其上移动的表面由3行3列(以数组表示)的BufferedImage的瓦片组成。所有瓦片的大小相同(160 X 160).The第三行和第三列是对象必须在其上移动的轨道。这意味着物体(机器人)可以水平(向前和向后)和垂直(向上和向下)移动。位置2的瓷砖(请从顶部开始计数。所以第一行是0,下一行是1,以此类推。)是一个交叉,机器人将使用它来改变垂直轨道轨道或水平轨道轨道。

我现在的问题是如何在十字路口转弯后将对象移动到特定的Tile上。例如,机器人将在位置2处的瓷砖中,并希望在转弯后移动到位置1处的瓷砖,然后进一步向上移动。或者,它可以是1,并希望在交叉转弯后移动到2,然后进一步向后移动。

如何将机器人从一个磁贴移动到另一个磁贴?我可以以哪种方式引用BufferedImage中的特定磁贴,以便放置对象。我所想要的就是给我一些想法,让我知道如何去做。

请这是我第一次做这样的项目,所以请原谅我的问题太初级了。有了你的解释和帮助,我会从中学到更多。

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2010-08-04 01:45:05

为了显示你的图像,你需要找出你想要放入你的图像的网格的边界。我通常创建两个辅助方法,一个用于将网格坐标转换为显示坐标,另一个用于将网格坐标转换为显示坐标。

代码语言:javascript
复制
private Point convertGridToDisplay(int x, int y) {
  return new Point(x * 160, y * 160);
}

private Point convertDisplayToGrid(int x, int y) {
  return new Point(x / 160, y / 160);
}

convertGridToDisplay()将给你左上角的坐标,你应该把你的图像绘制到的位置。

例如:

代码语言:javascript
复制
Point point = convertGridToDisplay(2, 1);
graphics.drawImage(img, null, point.x, point.y)

将在网格(2,1)处绘制图像。

当你想知道鼠标点击是在哪个网格中进行的,convertDisplayToGrid()会派上用场。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3397345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档