我正在阅读一个用于游戏开发的Android教程,该教程介绍了如何将游戏中的坐标转换为实际像素。很简单。这是通过以下功能完成的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的答案
您问他为什么要添加bottom
和right
...但是我只能看到他正在添加top
和left
。他这样做是因为y
轴从上到下,x
轴从左到右。
因此,要获得该bottom
点,您必须将y
顶部的坐标添加到height
矩形的。
与right
点相同,您必须将点的x
坐标添加left
到width
矩形的。
希望我的Paint
技能会有所帮助,我制作了一张图,可能会帮助您理解:
为了使图纸和我的答案更加清楚:
顶部+高度=底部
左+宽度=右
PS: “他”是制作您正在关注的教程的人。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句