pyglet.sprite
显示定位、缩放和旋转的图像。
精灵是屏幕上显示的图像的实例。多个精灵可以在屏幕上的不同位置显示相同的图像。精灵也可以缩放更大或更小,以任何角度旋转,并以不透明度分数绘制。
下面的完整示例将一个 "ball.png"
图像,并为该图像创建精灵。然后在窗口的绘制事件处理程序中绘制精灵::
import pyglet
ball_image = pyglet.image.load('ball.png')
ball = pyglet.sprite.Sprite(ball_image, x=50, y=50)
window = pyglet.window.Window()
@window.event
def on_draw():
ball.draw()
pyglet.app.run()
可以通过修改 x
和 y
属性。其他属性决定了精灵的 rotation
, scale
和 opacity
。
默认情况下,精灵坐标被限制为整数值,以避免亚像素瑕疵。如果需要使用浮点,例如为了获得更平滑的动画,可以设置 subpixel
参数设置为 True
创建精灵时(:自:pyglet1.2)。
精灵的定位、旋转和缩放都遵循原始图像的锚点 (anchor_x
, anchor_y
)。
绘制多个精灵
精灵可以被“批处理”在一起,一次绘制的速度比如果每个精灵的 draw
方法是单独调用的。下面的示例创建100个球子画面,并将它们分别添加到 Batch
。然后在一个调用中绘制整个批次的精灵::
batch = pyglet.graphics.Batch()
ball_sprites = []
for i in range(100):
x, y = i * 10, 50
ball_sprites.append(pyglet.sprite.Sprite(ball_image, x, y, batch=batch))
@window.event
def on_draw():
batch.draw()
精灵可以以任何方式自由修改,即使在添加到批次之后也是如此,但是一个精灵最多只能属于一个批次。请参阅的文档 pyglet.graphics
有关批处理渲染和批处理内精灵分组的更多详细信息。
在 1.1 版本加入.
- class Sprite(img, x=0, y=0, z=0, blend_src=770, blend_dest=771, batch=None, group=None, subpixel=False)
屏幕图像的实例。
有关用法,请参阅模块文档。
方法
- delete()
强制立即从视频内存中删除精灵。
建议在删除精灵时调用此方法,因为只要精灵超出作用域,Python垃圾回收器就不一定会调用终结器。
- draw()
在当前位置绘制精灵。
有关高效绘制多个精灵的提示,请参阅模块文档。
- update(x=None, y=None, z=None, rotation=None, scale=None, scale_x=None, scale_y=None)
同时更改位置、旋转或比例。
提供此方法是为了方便起见。一次更新多个精灵属性不会带来太大的性能优势。
- 参数:
- x集成
精灵的X坐标。
- y集成
精灵的Y坐标。
- z集成
精灵的Z坐标。
- rotation浮动
精灵的顺时针旋转,以度为单位。
- scale浮动
比例因子。
- scale_x浮动
水平比例因子。
- scale_y浮动
垂直比例因子。
事件
- on_animation_end()
精灵动画到达最后一帧。
仅当精灵具有动画而不是图像时才会触发该事件。对于循环动画,每次动画循环时都会触发该事件。
- 活动:
属性
- batch
图形批次。
可以将精灵从一个批次迁移到另一个批次,或从其批次中移除(用于单独绘制)。请注意,这可能是一项昂贵的操作。
- color
混合色。
此属性设置精灵顶点的颜色。这允许使用色调绘制精灵。
颜色被指定为整数‘(红、绿、蓝)’的RGB元组。每个颜色分量必须在0(暗)到255(饱和)的范围内。
- 类型:
(int,int,int)
- group
父图形组。
精灵可以更改其渲染组,但这可能是一个昂贵的操作。
- height
精灵的缩放高度。
旋转时不变的。
- 类型:
集成
- image
要显示的图像或动画。
- 类型:
AbstractImage
orAnimation
- opacity
混合不透明度。
此属性设置精灵顶点颜色的Alpha分量。使用默认混合模式(请参见构造函数),这允许绘制具有分数不透明度的精灵,与背景混合。
不透明度为255(默认值)没有任何效果。不透明度为128将使精灵显示为半透明。
- 类型:
集成
- position
精灵的(x,y,z)坐标,作为一个元组。
- 参数:
- x集成
精灵的X坐标。
- y集成
精灵的Y坐标。
- z集成
精灵的Z坐标。
- rotation
精灵的顺时针旋转,以度为单位。
精灵图像将围绕其图像的位置(锚定_x,锚定_y)旋转。
- 类型:
浮动
- scale
基本比例因子。
比例因子1(默认值)不起作用。比例为2将以其图像原始大小的两倍绘制精灵。
- 类型:
浮动
- scale_x
水平比例因子。
比例因子1(默认值)不起作用。比例为2将以其图像的自然宽度的两倍绘制精灵。
- 类型:
浮动
- scale_y
垂直比例因子。
比例因子1(默认值)不起作用。比例为2将以其图像的原始高度的两倍绘制精灵。
- 类型:
浮动
- visible
如果要绘制精灵,则为True。
- 类型:
布尔尔
- width
精灵的缩放宽度。
旋转时不变的。
- 类型:
集成
- x
精灵的X坐标。
- 类型:
集成
- y
精灵的Y坐标。
- 类型:
集成