小精灵#

arcade.load_animated_gif(resource_name) TextureAnimationSprite[源代码]#

尝试将动画GIF加载为 TextureAnimationSprite

许多较旧的GIF会加载除第一帧以外的每一帧的不正确透明度。在Pillow库更好地处理格式的怪癖之前,加载动画GIF将是一件非常麻烦的事情。一个很好的解决方法是在另一个程序中加载GIF,并将它们导出为PNG,或者作为精灵工作表或每个文件一个帧。

class arcade.AnimatedWalkingSprite(scale: float = 1.0, center_x: float = 0.0, center_y: float = 0.0, **kwargs)[源代码]#

基类:Sprite

支持行走动画的Platform游戏不推荐使用Sprite。确保在加载动画后调用UPDATE_动画,以便可以设置初始纹理。或手动设置。

强烈建议您创建此类的您自己的版本,而不是尝试使用这个预打包的版本。

有关示例,请参见Platformer教程的这一节: 第12步-从地图编辑器加载地图

参数:
  • scale -- 精灵的初始比例。

  • center_x -- 精灵的初始x位置。

  • center_y -- 精灵的初始y位置。

update_animation(delta_time: float = 0.016666666666666666) None[源代码]#

纹理动画的逻辑。

参数:

delta_time -- 自上次更新以来的时间。

boundary_bottom: float | None#
boundary_left: float | None#
boundary_right: float | None#
boundary_top: float | None#
change_angle: float#
cur_texture_index: int#
force#
guid: str | None#
physics_engines: List[Any]#
textures: List[Texture]#
class arcade.TextureAnimation(keyframes: List[TextureKeyframe])[源代码]#

基类:

包含关键帧列表的动画类。动画不应存储与当前时间相关的任何状态,以便可以在多个精灵之间共享。

参数:
  • keyframes -- 动画的关键帧列表。

  • loop -- 动画是否应循环。

get_keyframe(time: float, loop: bool = True) Tuple[int, TextureKeyframe][源代码]#

在给定时间获取帧。

参数:
  • time -- 以秒为单位的时间。

  • loop -- 动画是否应循环。

返回:

帧索引和关键帧的元组。

duration_ms#

动画的总持续时间(毫秒)。

duration_seconds#

动画的总持续时间(秒)。

keyframes#

动画中的关键帧元组。不应直接修改关键帧。

num_frames#

动画中的帧数。

class arcade.TextureAnimationSprite(center_x: float = 0.0, center_y: float = 0.0, scale: float = 1.0, animation: TextureAnimation | None = None, **kwargs)[源代码]#

基类:Sprite

基于关键帧的动画精灵。主要由耕作地图在内部使用。

参数:
  • path_or_texture -- 图像文件或纹理对象的路径。

  • center_x -- 精灵的初始x位置。

  • center_y -- 精灵的初始y位置。

  • scale -- 精灵的初始比例。

update_animation(delta_time: float = 0.016666666666666666, **kwargs) None[源代码]#

更新动画的逻辑。

参数:

delta_time -- 自上次更新以来的时间。

animation#

此子画面的动画对象。

boundary_bottom: float | None#
boundary_left: float | None#
boundary_right: float | None#
boundary_top: float | None#
change_angle: float#
cur_texture_index: int#
force#
guid: str | None#
physics_engines: List[Any]#
textures: List[Texture]#
time#

获取或设置动画的当前时间(秒)。

class arcade.TextureKeyframe(texture: Texture, duration: int = 100, tile_id: int | None = 0, **kwargs)[源代码]#

基类:

纹理动画的关键帧。

参数:
  • texture -- 要为此关键帧显示的纹理。

  • duration -- 显示此关键帧的持续时间(毫秒)。

  • tile_id -- 此关键帧的平铺ID(仅用于平铺贴图)

duration#

显示此关键帧的持续时间(毫秒)。

texture#

要为此关键帧显示的纹理。

tile_id#

此关键帧的平铺ID(仅用于平铺贴图)

class arcade.Sprite(path_or_texture: str | Path | Texture | None = None, scale: float = 1.0, center_x: float = 0.0, center_y: float = 0.0, angle: float = 0.0, **kwargs: Any)[源代码]#

基类:BasicSprite, PymunkMixin

精灵用于将图像数据渲染到屏幕上并执行碰撞。

大多数游戏都以精灵为中心。它们最常用的用法如下:

  1. 创建 Sprite 来自图像数据的实例

  2. 将精灵添加到 SpriteList 实例

  3. 打电话 SpriteList.draw() 在您的 on_draw 方法。

有关如何执行此操作的可运行示例,请参阅Arcade的 built-in Sprite examples

小技巧

高级用户应查看 BasicSprite

它使用更少的资源,代价是拥有更少的功能。

参数:
  • path_or_texture -- 图像文件或纹理对象的路径。

  • center_x -- 精灵的位置,以像素为单位。

  • center_y -- 精灵的位置,以像素为单位。

  • scale -- 以其原始大小的许多倍显示图像。

  • angle -- 精灵的初始旋转(以度为单位

append_texture(texture: Texture)[源代码]#

将新纹理附加到可应用于该精灵的纹理列表中。

参数:

texture -- 要添加到可用纹理列表的纹理

draw(*, filter: Tuple[int, int] | None = None, pixelated: bool | None = None, blend_function: Tuple[int, int] | Tuple[int, int, int, int] | None = None) None[源代码]#

将精灵绘制到当前OpenGL上下文中的调试方法。

警告

您可能正在寻找 SpriteList.draw() 好了!

绘制单个精灵比使用 SpriteList 。看见 为什么是SpriteList? 以获取更多信息。

这种方法不应该依赖。有一天它可能会被移除。

参数:
  • filter -- 设置OpenGL滤镜的可选参数,如 gl.GL_NEAREST 以避免平滑。

  • pixelated -- True 对于像素化和 False 用于平滑内插。用于设置Filter=GL_NEAREST的快捷方式。

  • blend_function -- 设置用于绘制精灵列表的OpenGL混合函数的可选参数,例如‘arcade.Window.ctx.BLEND_Additive’或‘arcade.Window.ctx.BLEND_DEFAULT’

forward(speed: float = 1.0) None[源代码]#

向前调整精灵。

参数:

speed -- 速度

register_physics_engine(physics_engine: Any) None[源代码]#

在精灵上注册一个物理引擎。只有当您实际上需要引用精灵本身中的物理引擎时,才需要这样做。它没有其他目的。

注册的物理引擎可以通过 physics_engines 属性。

例如,它可以是金龟子的物理引擎,也可以是您定制的引擎。

remove_from_sprite_lists() None[源代码]#

将这个精灵从所有精灵列表中删除,包括注册的物理引擎。

reverse(speed: float = 1.0) None[源代码]#

向后调整精灵。

参数:

speed -- 速度

set_texture(texture_no: int) None[源代码]#

按纹理编号设置当前纹理。该数字是进入的索引 self.textures

参数:

texture_no -- 索引到 self.textures

stop() None[源代码]#

通过将速度和角度更改设置为0来停止精灵的运动。

strafe(speed: float = 1.0) None[源代码]#

横向调整精灵。

参数:

speed -- 速度

sync_hit_box_to_texture()[源代码]#

更新精灵的点击框以匹配当前纹理的点击框。

turn_left(theta: float = 90.0) None[源代码]#

将精灵向左旋转传递度数。

参数:

theta -- 角度的变化,以度为单位

turn_right(theta: float = 90.0) None[源代码]#

将精灵向右旋转传递的度数。

参数:

theta -- 角度的变化,以度为单位

update() None[源代码]#

Sprite的默认更新方法。可以由子类重写。

该方法根据精灵的速度和角度变化来移动精灵。

update_spatial_hash() None[源代码]#

更新空间散列中的精灵位置。

angle#

获取或设置旋转或精灵。

该值以度为单位,并沿顺时针方向。

boundary_bottom: float | None#
boundary_left: float | None#
boundary_right: float | None#
boundary_top: float | None#
change_angle: float#
change_x#

获取或设置精灵在x平面中的速度。

change_y#

获取或设置精灵在y平面上的速度。

cur_texture_index: int#
force#
guid: str | None#
hit_box#

获取或设置此子画面的命中框。

physics_engines: List[Any]#
properties#

获取或设置自定义子画面属性。

radians#

获取或设置精灵以弧度为单位的旋转。

该值以弧度为单位,顺时针方向。

texture#

获取或设置此子画面的活动纹理

textures: List[Texture]#
velocity#

获取或设置精灵的速度。

X和y速度也可以使用 sprite.change_xsprite.change_y 属性。

示例::

sprite.velocity = 1.0, 0.0
返回:

元组 [float, float]

class arcade.PyMunk[源代码]#

基类:

对象,用于保存精灵的土拨鼠信息。

damping#
gravity#
max_horizontal_velocity#
max_velocity#
max_vertical_velocity#
class arcade.PymunkMixin[源代码]#

基类:

pymunk_moved(physics_engine, dx, dy, d_angle)[源代码]#

如果这个精灵移动了,就会被黑猩猩物理引擎调用。

class arcade.BasicSprite(texture: Texture, scale: float = 1.0, center_x: float = 0, center_y: float = 0, visible: bool = True, **kwargs: Any)[源代码]#

基类:

这是一个精灵所需要的绝对最低要求。

它不支持旋转或在创建后更改Hitbox等功能。有关更多内置功能,请参阅 Sprite

参数:
  • texture -- 要用于此子画面的纹理数据。

  • scale -- 用于绘制纹理的比例因子。

  • center_x -- 精灵沿X轴的位置(以像素为单位)。

  • center_y -- 精灵沿Y轴的位置,以像素为单位。

collides_with_list(sprite_list: SpriteList) List[SpriteType][源代码]#

检查当前精灵是否与列表中的任何其他精灵重叠

参数:

sprite_list -- 要检查的SpriteList

返回:

原始SpriteList中所有重叠的Sprite的列表

collides_with_point(point: Tuple[float, float]) bool[源代码]#

检查点是否在当前精灵中。

参数:

point -- 指向检查。

返回:

如果点包含在精灵的边界内,则为True。

collides_with_sprite(other: SpriteType) bool[源代码]#

将检查一个精灵是否与另一个精灵重叠(碰撞)。

参数:

other -- 另一个要检查的精灵。

返回:

对或错,无论它们是否重叠。

draw_hit_box(color: Tuple[int, int, int, int] = (0, 0, 0, 255), line_thickness: float = 2.0) None[源代码]#

画一个精灵的命中盒。这对于调试很有用。

参数:
  • color -- 方框的颜色

  • line_thickness -- 盒子应该有多厚?

kill() None[源代码]#

的别名 remove_from_sprite_lists()

on_update(delta_time: float = 0.016666666666666666) None[源代码]#

更新子画面。类似于更新,但也需要增量时间。它可以手动调用,也可以由SpriteList的On_UPDATE方法调用。

参数:

delta_time -- 自上次更新以来的时间。

register_sprite_list(new_list: SpriteList) None[源代码]#

将此子画面注册为属于列表。当调用Kill()时,我们将自动从列表中删除自己。

remove_from_sprite_lists() None[源代码]#

从所有精灵列表中删除精灵。

rescale_relative_to_point(point: Tuple[float, float], factor: float) None[源代码]#

重新缩放精灵及其与通过点之间的距离。

此函数执行两项操作:

  1. 将精灵中的两个值相乘 scale_xy 价值依据 factor

  2. 缩放子画面和精灵之间的距离 point 通过 factor

如果 point 等于精灵的 position ,距离将为零,精灵不会移动。

参数:
  • point -- 重新缩放的参照点。

  • factor -- 精灵比例和到点的距离的倍增。

返回:

rescale_xy_relative_to_point(point: Tuple[float, float], factors_xy: Iterable[float]) None[源代码]#

重新缩放精灵及其与通过点之间的距离。

此方法可以在每个轴上按不同的量进行缩放。要仅沿一个轴缩放,请将另一个轴设置为 1.0 在……里面 factors_xy

在内部,此函数执行以下操作:

  1. 将精灵的x&y相乘 scale_xy 属性由来自的相应部件 factors_xy

  2. 缩放精灵位置和精灵位置之间的差值的x和y point 由来自的相应组件 factors_xy

如果 point 等于精灵的 position ,距离将为零,精灵不会移动。

参数:
  • point -- 重新缩放的参照点。

  • factors_xy -- 包含x和y乘数的2长度可迭代数 scale 距离(&D) point

返回:

update() None[源代码]#

泛型更新方法。它可以手动调用,也可以由SpriteList的更新方法调用。

update_animation(delta_time: float = 0.016666666666666666) None[源代码]#

泛型更新动画方法。通常涉及更改精灵上的活动纹理。

这可以手动调用,也可以由SpriteList的UPDATE_动画方法调用。

参数:

delta_time -- 自上次更新以来的时间。

update_spatial_hash() None[源代码]#

更新空间散列中的精灵位置(如果存在)。

alpha#

获取或设置精灵的Alpha值

bottom#

命中框中的最小y坐标。

设置此属性时,子画面相对于命中框中最低的y坐标定位。

center_x#

获取或设置精灵的中心x位置。

center_y#

获取或设置精灵的中心y位置。

color#

获取或设置精灵的RGBA倍增颜色。

设置颜色时,可以将其指定为以下任一项:

  • RGBA tuple 每个通道值在0和255之间

  • 的一个实例 Color

  • 一个RGB tuple ,在这种情况下,颜色将被视为不透明

示例用法::

>>> print(sprite.color)
Color(255, 255, 255, 255)

>>> sprite.color = arcade.color.RED

>>> sprite.color = 255, 0, 0

>>> sprite.color = 255, 0, 0, 128
depth#

获取或设置精灵的深度。

这实际上是精灵的z坐标,可以与不透明精灵的OpenGL深度测试一起使用。

height#

获取或设置精灵的高度(以像素为单位)。

hit_box#
left#

点击框中最左侧的x坐标。

设置此属性时,精灵相对于命中框中最左侧的x坐标进行定位。

position#

获取或设置精灵的中心x和y位置。

返回:

(CENTER_x,CENTER_Y)

right#

点击框中最右侧的x坐标。

设置此属性时,子画面相对于命中框中最右侧的x坐标定位。

scale#

获取或设置精灵的x比例值,或将x和y比例设置为相同的值。

备注

支持负值。他们将翻转和镜像精灵。

scale_xy#

获取或设置精灵的x&y比例作为一对值。

sprite_lists: List['SpriteList']#
texture#

获取或设置此子画面的可见纹理此属性可以随时间更改以动画子画面。

请注意,这不会更改精灵的命中框。

top#

命中框中的最高y坐标。

设置此属性时,精灵相对于命中框中的最高y坐标定位。

visible#

获取或设置此子画面的可见性。

当设置为时 False ,每一个 SpriteList 并且其附加的着色器会将精灵视为具有 alpha 0。但是,精灵的实际值 alphacolor 不会改变。

# The initial color of the sprite
>>> sprite.color
Color(255, 255, 255, 255)

# Make the sprite invisible
>>> sprite.visible = False
# The sprite's color value has not changed
>>> sprite.color
Color(255, 255, 255, 255)
# The sprite's alpha value hasn't either
>>> sprite.alpha
255

# Restore visibility
>>> sprite.visible = True
# Shorthand to toggle visible
>>> sprite.visible = not sprite.visible
width#

获取或设置宽度或子画面(以像素为单位

class arcade.SpriteCircle(radius: int, color: Tuple[int, int, int, int], soft: bool = False, **kwargs)[源代码]#

基类:Sprite

指定的圆 radius

纹理是自动生成的,而不是从文件加载的。

第一次出现口吃时可能会出现口吃 radiuscolor ,以及 soft 由于纹理生成而使用。对相同组合的所有后续调用将运行得更快,因为它们将重复使用先前生成的纹理。

对于渐变填充而不是纯色,请设置 softTrue 。该圆将从不透明的中心褪色到边缘的透明。

参数:
  • radius -- 圆的半径,以像素为单位

  • color -- RGB或RGBA元组形式的精灵的颜色

  • soft -- 如果 True 时,该圆将从不透明的中心渐隐为透明的边缘。

boundary_bottom: float | None#
boundary_left: float | None#
boundary_right: float | None#
boundary_top: float | None#
change_angle: float#
cur_texture_index: int#
force#
guid: str | None#
physics_engines: List[Any]#
textures: List[Texture]#
class arcade.SpriteSolidColor(width: int, height: int, center_x: float = 0, center_y: float = 0, color: Tuple[int, int, int, int] = (255, 255, 255, 255), angle: float = 0, **kwargs)[源代码]#

基类:Sprite

给定的矩形精灵 widthheight ,以及 color

纹理是自动生成的,而不是从文件加载的。在内部,这种精灵类型只使用一个全局纹理,所以无论精灵变化的大小或数量如何,都不存在关于内存使用的问题。

参数:
  • width -- 精灵的宽度,以像素为单位

  • height -- 精灵的高度,以像素为单位

  • center_x -- 精灵的初始x位置

  • center_y -- 精灵的初始y位置

  • color -- 对象的精灵的颜色 Color 、RGBA元组或RGB元组。

  • angle -- 精灵的初始角度(以度为单位