了解Pyglet中的anchor_x和anchor_y属性

时间:2019-03-19 06:19:58

标签: python-2.7 pyglet

我是Python和游戏开发的新手,刚开始学习Pyglet(1.3.2)。我正在尝试处理标签及其位置。

我了解x和y坐标表示窗口上标签/图像的像素位置。在图像或冲刺的情况下,定位值确定图像从其定位到屏幕的位置(进而影响其移动)。

但是,我不完全了解标签中锚点的影响。根据{{​​3}} 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')更向左:

this

有人可以详细说明锚点的意义以及如何计算标签的最终位置。谢谢!

1 个答案:

答案 0 :(得分:1)

因此锚点的工作方式是,它们仅定义对象的放置点。意思是,如果您以center作为锚点,则对象中心将放置在给定坐标(在您的情况下为x=200, y=100

左下角的锚点将告诉Pyglet将对象的左下角放置在给定位置,而不是将中心放置在那些坐标处。

如果您分析自己的图像,这将非常清楚,这里的两个点彼此直接对齐:

enter image description here

它们的位置相同,但是因为您已经重新定义了锚点-它将在该位置放置中心或拐角。

用红色将center定义为锚点。并用蓝色定义了bottom left(默认值)。

(忽略点未完全对齐,在摇摆火车上的笔记本电脑触摸板上很难完成)

希望这是有道理的。另请参阅我上面的评论,以另一种描述方式。