Sprite场景#

arcade.Scene#

class arcade.Scene[源代码]#

类的新实例,该类表示 scene 对象。大多数游戏将使用场景来渲染其精灵。有关如何使用此类的示例,请参阅:https://api.arcade.academy/en/latest/tutorials/views/index.html

属性:
sprite_lists

一份名单 SpriteList 物体。此列表的顺序就是它们将被绘制的顺序。

name_mapping

一本……词典 SpriteList 物体。它包含的列表与 sprite_lists 属性,但它是它们按名称的映射。它的顺序不一定与 sprite_lists 属性。

add_sprite(name: str, sprite: arcade.sprite.Sprite) None[源代码]#

将Sprite添加到场景中具有指定名称的SpriteList。

如果所需的SpriteList不存在,将自动创建它并将其添加到场景中。这将默认将SpriteList添加到绘制顺序的末尾,并且创建时没有使用空间散列等额外选项。

如果您需要更多地控制SpriteList的去向,或者需要它来使用空间哈希,那么应该单独添加SpriteList,然后再添加Sprite。

参数
  • name (str) -- 的名称 SpriteList 添加或创建。

  • sprite (Sprite) -- 这个 Sprite 要添加。

add_sprite_list(name: str, use_spatial_hash: bool = False, sprite_list: Optional[arcade.sprite_list.sprite_list.SpriteList] = None) None[源代码]#

将SpriteList添加到具有指定名称的场景。

这将在绘制顺序的末尾向场景中添加一个新的SpriteList。

如果没有通过 sprite_list 参数,则将创建一个新参数,并且 use_spatial_hash 参数将被用于该创建。

参数
  • name (str) -- 为SpriteList指定的名称。

  • use_spatial_hash (bool) -- 是否在创建新SpriteList时使用空间哈希。

  • sprite_list (SpriteList) -- 要添加的SpriteList,可选。

add_sprite_list_after(name: str, after: str, use_spatial_hash: bool = False, sprite_list: Optional[arcade.sprite_list.sprite_list.SpriteList] = None) None[源代码]#

在特定SpriteList之后使用指定名称将SpriteList添加到场景中。

这将在绘制顺序中指定的SpriteList之后将新SpriteList添加到场景中。

如果没有通过 sprite_list 参数,则将创建一个新参数,并且 use_spatial_hash 参数将被用于该创建。

参数
  • name (str) -- 为SpriteList指定的名称。

  • after (str) -- 要将此元素放在后面的SpriteList的名称。

  • use_spatial_hash (bool) -- 是否在创建新SpriteList时使用空间哈希。

  • sprite_list (SpriteList) -- 要添加的SpriteList,可选。

add_sprite_list_before(name: str, before: str, use_spatial_hash: bool = False, sprite_list: Optional[arcade.sprite_list.sprite_list.SpriteList] = None) None[源代码]#

将指定名称的SpriteList添加到场景中的特定SpriteList之前。

这将在绘制顺序中指定的SpriteList之前将新SpriteList添加到场景中。

如果没有通过 sprite_list 参数,则将创建一个新参数,并且 use_spatial_hash 参数将被用于该创建。

参数
  • name (str) -- 为SpriteList指定的名称。

  • before (str) -- 要放在其前面的SpriteList的名称。

  • use_spatial_hash (bool) -- 是否在创建新SpriteList时使用空间哈希。

  • sprite_list (SpriteList) -- 要添加的SpriteList,可选。

draw(names: Optional[List[str]] = None, **kwargs) None[源代码]#

画出场景。

如果 names 参数,则只会绘制指定的SpriteList。它们将按照名单上的名字排列的顺序进行抽签。如果 names ,则场景中的每个SpriteList将根据场景的主要Sprite_List属性的顺序绘制。

参数
  • names (Optional[List[str]]) -- 要绘制的SpriteList的名称列表。

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

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

draw_hit_boxes(color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (0, 0, 0, 255), line_thickness: float = 1, names: Optional[List[str]] = None) None[源代码]#

为场景中的所有精灵绘制命中框。

如果 names 参数,则只会绘制指定的SpriteList。它们将按照名单上的名字排列的顺序进行抽签。如果 names 则场景中的每个SpriteList将根据场景的主要Sprite_List属性的顺序绘制。

classmethod from_tilemap(tilemap: arcade.tilemap.tilemap.TileMap) arcade.scene.Scene[源代码]#

从一个场景创建新场景 TileMap 对象。

这将查看TileMap对象中的所有SpriteList,并使用它们创建场景。这将自动使SpriteList保持它们在TileMap类中定义的相同顺序,这是它们在平铺中定义的顺序。

参数

tilemap (TileMap) -- 这个 TileMap 要从中创建场景的对象。

get_sprite_list(name: str) arcade.sprite_list.sprite_list.SpriteList[源代码]#

Helper函数来检索 SpriteList 叫出名字。

名称映射可以直接访问,这只是为了便于使用。

参数

name (str) -- 的名称 SpriteList 去找回。

move_sprite_list_after(name: str, after: str) None[源代码]#

将场景中的给定SpriteList移动到另一个给定SpriteList之后。

这将调整呈现顺序,以便由 name 放在由 after

参数
  • name (str) -- 要移动的SpriteList的名称。

  • after (str) -- 要放置它的SpriteList的名称。

move_sprite_list_before(name: str, before: str) None[源代码]#

将场景中的给定SpriteList移到另一个给定SpriteList之前。

这将调整呈现顺序,以便由 name 放在由 before

参数
  • name (str) -- 要移动的SpriteList的名称。

  • before (str) -- 要放置在其前面的SpriteList的名称。

on_update(delta_time: float = 0.016666666666666666, names: Optional[List[str]] = None) None[源代码]#

用于调用场景中包含的SpriteList的ON_UPDATE。类似于UPDATE(),但允许传递Delta_Time变量。

如果 names 参数,则只会更新指定的精灵列表。如果 names 则场景中的每个SpriteList都将调用ON_UPDATE。

参数
  • delta_time (float) -- 自上次更新以来的时间。

  • names (Optional[List[str]]) -- 要更新的SpriteList的名称列表。

remove_sprite_list_by_name(name: str) None[源代码]#

按其名称删除SpriteList。

此函数用于从场景中完全移除SpriteList。

参数

name (str) -- 要删除的SpriteList的名称。

update(names: Optional[List[str]] = None) None[源代码]#

用于更新场景中包含的SpriteList。

如果 names 参数,则只会更新指定的精灵列表。如果 names 则场景中的每个SpriteList都将被更新。

参数

names (Optional[List[str]]) -- 要更新的SpriteList的名称列表。

update_animation(delta_time: float, names: Optional[List[str]] = None) None[源代码]#

用于更新场景中包含的SpriteList的动画。

如果 names 参数,则只会更新指定的精灵列表。如果 names 则场景中的每个SpriteList都将被更新。

参数
  • delta_time (float) -- 更新的增量时间。

  • names (Optional[List[str]]) -- 要更新的SpriteList的名称列表。