我是Python和游戏开发的新手,刚开始学习Pyglet(1.3.2)。我正在尝试使用标签及其定位。
我知道x和y坐标表示窗口上标签/图像的像素位置。在图像或短跑的情况下,锚值确定图像锚定到屏幕的位置(这反过来影响它们的移动)。
但是,我并不完全了解锚标在标签中的影响。根据this pyglet文档,它说:
文本的位置由x和y坐标给出。这些坐标的含义由anchor_x和anchor_y参数给出。
这里隐含着什么意义?如果它们没有移动,不管锚值如何,它们的位置是否应该保持固定?
另外,当我使用这些标签运行程序时:
label1 = pyglet.text.Label('Window1',font_name='Times New Roman', font_size=36, x=200, y=100,anchor_x='center', anchor_y='center')
label2 = pyglet.text.Label('Window2',font_name='Times New Roman', font_size=36, x=200, y=100,anchor_x='left', anchor_y='center')
它产生的输出又难以理解,因为Window1(anchor_x ='center')比Window2更靠左(anchor_x ='left'):
有人可以详细说明锚点的重要性,以及如何计算标签的最终位置。谢谢!
所以锚点的工作方式是它们只是定义一个对象的放置点。意思是,如果你有center
作为你的锚点,对象中心将被放置在给定的坐标(在你的情况下,x=200, y=100
)
并且左下角的锚点将告诉Pyglet将对象放置在给定位置的左下角,而不是那些坐标处的中心。
如果你分析自己的图像,这将非常清楚,这里两个点直接相互对齐:
它们被定位在相同的坐标上,但是因为你已经重新定义了锚点 - 它会将中心或角落放在那个位置。
红色,你已经定义了center
作为你的锚点。而在蓝色,你已经定义了bottom left
(默认)。
(忽略点不完美对齐,在摇摆的火车上在笔记本电脑触摸板上做的很棘手)
希望这是有道理的。另请参阅我的上述评论,以了解另一种描述方式。