我刚开始学习Python和游戏开发,刚刚开始学习Pyglet (1.3.2)。我试着玩标签和他们的定位。
我知道x和y坐标表示窗口上标签/图像的像素位置。在图像或sprint的情况下,锚值决定图像被锚定到屏幕的位置(这反过来又会影响它们的移动)。
然而,我并不完全理解锚在标签上的作用。根据这 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 (锚_x=‘心’)比Window2 (锚_x=‘左’)更接近左:
请有人详细说明锚的意义和标签的最终位置是如何计算的。谢谢!
发布于 2019-03-19 02:47:11
因此,锚的工作方式,就是简单地定义一个对象的放置点。这意味着,如果您使用center
作为锚,对象中心将放置在给定的坐标(在您的例子中是x=200, y=100
__)。
左下角的锚会告诉Pyglet将物体左下角放置在给定的位置,而不是位于这些坐标的中心。
如果你分析你自己的图像,这将是非常清楚的,在这里,这两个点是直接一致的:
它们被定位在相同的坐标上,但是因为你重新定义了锚,它会把中心或者一个角放在那个位置上。
在红色中,您已经将center
定义为您的锚。在蓝色中,您已经定义了bottom left
(默认值)。
(忽略这些点不是完全对齐的,在摇曳的火车上用笔记本电脑触控板做是很棘手的。)
希望这是有意义的。也请参阅我的上述评论,以另一种方式来描述这一点。
https://stackoverflow.com/questions/55234767
复制