Java worldToScreen()-它是如何工作的?
我正在阅读android游戏开发教程,其中解释了如何将游戏中的坐标转换为实际像素。很简单。这是通过函数Java worldToScreen()-它是如何工作的?,java,android,game-engine,Java,Android,Game Engine,我正在阅读android游戏开发教程,其中解释了如何将游戏中的坐标转换为实际像素。很简单。这是通过函数worldToScreen()完成的,如下所示: public Rect worldToScreen(float objectX, float objectY, float objectWidth, float objectHeight){ int left = (int) (screenCentreX - ((currentViewportWorldCentre.x - ob
worldToScreen()
完成的,如下所示:
public Rect worldToScreen(float objectX, float objectY, float objectWidth, float objectHeight){
int left = (int) (screenCentreX - ((currentViewportWorldCentre.x - objectX) * pixelsPerMetreX));
int top = (int) (screenCentreY - ((currentViewportWorldCentre.y - objectY) * pixelsPerMetreY));
int right = (int) (left + (objectWidth * pixelsPerMetreX));
int bottom = (int) (top + (objectHeight * pixelsPerMetreY));
convertedRect.set(left, top, right, bottom);
return convertedRect;
}
它似乎返回一个矩形对象,其中包含正方形对象将占据的四个点
请详细解释。回答问题1 他使用矩形可能是因为它是一个简单的几何体对象,已经在
Java
和大多数游戏库中实现了,就像你正在使用的那个(我可以看到他使用的是Rect
类)
例如,当您想要实现简单的碰撞检测时,矩形也是2D游戏中常见的解决方案
对问题2的回答 你问他为什么要添加
底部
和右侧
。。。但我只能看到他在添加顶部
和左侧
。
他这样做是因为y
轴从上到下,而x
轴从左到右
因此,要获得底部
点,必须将顶部点的y
坐标添加到矩形的高度
对于右侧
点也是一样,您必须将左侧
点的x
坐标添加到矩形的宽度
为了让我的绘画技能发挥作用,我画了一幅可能有助于你理解的图:
为了让这幅画和我的答案更加清晰:
顶部+高度=底部
左+宽=右
PS:“他”就是你正在学习的教程的作者。回答得很好,我的朋友。这幅画是我理解的锦上添花。非常感谢!