寻路#

arcade.AStarBarrierList#

class arcade.AStarBarrierList(moving_sprite: arcade.sprite.Sprite, blocking_sprites: arcade.sprite_list.sprite_list.SpriteList, grid_size: int, left: int, right: int, bottom: int, top: int)[源代码]#

管理在A*路径查找过程中可能遇到的障碍列表的类。

参数
  • moving_sprite (Sprite) -- 将会移动的Sprite

  • blocking_sprites (SpriteList) -- 可以阻止移动的精灵

  • grid_size (int) -- 网格的大小,以像素为单位

  • left (int) -- 比赛场地的左边界

  • right (int) -- 比赛场地的右边界

  • bottom (int) -- 竞技场底部

  • top (int) -- 一流的运动场

recalculate()[源代码]#

重新计算阻挡精灵。

arcade.astar_calculate_path#

arcade.astar_calculate_path(start_point: Union[Tuple[float, float], List[float]], end_point: Union[Tuple[float, float], List[float]], astar_barrier_list: arcade.paths.AStarBarrierList, diagonal_movement=True)[源代码]#
参数
  • start_point (Point) --

  • end_point (Point) --

  • astar_barrier_list (AStarBarrierList) --

  • diagonal_movement (bool) --

退货:列表

arcade.has_line_of_sight#

arcade.has_line_of_sight(point_1: Union[Tuple[float, float], List[float]], point_2: Union[Tuple[float, float], List[float]], walls: arcade.sprite_list.sprite_list.SpriteList, max_distance: int = - 1, check_resolution: int = 2)[源代码]#

确定我们在两点之间是否有视线。尝试确保在墙上SpriteList上启用了空间散列,否则速度将非常慢。

参数
  • point_1 (Point) -- 起始位置

  • point_2 (Point) -- 结束位置位置

  • walls (SpriteList) -- 所有阻止精灵的列表

  • max_distance (int) -- 点1可以看到的最大距离

  • check_resolution (int) -- 检查每个x像素中是否有精灵。在准确性和速度之间进行权衡。