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()

可以通过修改 xy 属性。其他属性决定了精灵的 rotationscaleopacity

默认情况下,精灵坐标被限制为整数值,以避免亚像素瑕疵。如果需要使用浮点,例如为了获得更平滑的动画,可以设置 subpixel 参数设置为 True 创建精灵时(:自:pyglet1.2)。

精灵的定位、旋转和缩放都遵循原始图像的锚点 (anchor_xanchor_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

图形批次。

可以将精灵从一个批次迁移到另一个批次,或从其批次中移除(用于单独绘制)。请注意,这可能是一项昂贵的操作。

类型:

pyglet.graphics.Batch

color

混合色。

此属性设置精灵顶点的颜色。这允许使用色调绘制精灵。

颜色被指定为整数‘(红、绿、蓝)’的RGB元组。每个颜色分量必须在0(暗)到255(饱和)的范围内。

类型:

(int,int,int)

group

父图形组。

精灵可以更改其渲染组,但这可能是一个昂贵的操作。

类型:

pyglet.graphics.Group

height

精灵的缩放高度。

旋转时不变的。

类型:

集成

image

要显示的图像或动画。

类型:

AbstractImage or Animation

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坐标。

类型:

集成

class SpriteGroup(texture, blend_src, blend_dest, program, parent=None)

共享子画面渲染组。

该组将自动与共享相同父组、纹理和混合参数的其他精灵组合并。

set_state()

应用OpenGL状态更改。

默认实现不执行任何操作。

unset_state()

撤销OpenGL状态更改。

默认实现不执行任何操作。