摄像机#

class arcade.Camera(*, viewport: Tuple[int, int, int, int] | None = None, projection: Tuple[float, float, float, float] | None = None, zoom: float = 1.0, rotation: float = 0.0, anchor: Tuple[float, float] | None = None, window: Window | None = None)[源代码]#

基类:SimpleCamera

Camera类用于控制可见的视区、投影、缩放和旋转。它对于分离精灵的滚动屏幕和图形用户界面覆盖非常有用。有关此功能的实际应用示例,请参见 以滚动屏幕为中心移动

参数:
  • viewport -- (左、下、宽、高)视区的大小。如果没有,将使用窗口大小。

  • projection -- 投影的大小(左、右、下、上)。如果没有,将使用窗口大小。

  • zoom -- 要应用于投影的缩放

  • rotation -- 旋转投影的角度(以度为单位

  • anchor -- 摄影机旋转将锚定的x,y点。默认设置为视区的中心。

  • window -- 如果使用多窗口程序,则与此摄像机关联的窗口。

get_sprites_at_point(point: Point, sprite_list: SpriteList) List['Sprite'][源代码]#

当此函数查看是否有任何精灵与指定点重叠时,获取特定点处的精灵列表。如果某个精灵具有不同的center_x/center_y,但触及该点,则会返回该精灵。

参数:
  • point -- 指向检查

  • sprite_list -- 要检查的SpriteList

返回:

精灵冲突列表或空列表。

set_viewport(viewport: Tuple[int, int, int, int]) None[源代码]#

设置视区

shake(velocity: Vec2 | tuple, speed: float = 1.5, damping: float = 0.9) None[源代码]#

添加相机抖动。

参数:
  • velocity -- 向量开始移动相机

  • speed -- 摇动有多快?

  • damping -- 停止颤抖的速度有多快

update() None[源代码]#

将摄影机的视区更新为当前设置。

use() None[源代码]#

选择要使用的此相机。在你画画之前做这件事。

anchor#

获取或设置相机的旋转锚点。

默认情况下,锚点是屏幕的中心,锚点值为 None 。指定自定义锚点将覆盖此行为。锚点位于世界/全局坐标中。

示例::

# Set the anchor to the center of the world
camera.anchor = 0, 0
# Set the anchor to the center of the player
camera.anchor = player.position
far#

应用于投影的Far

near#

Near应用于投影

rotation#

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

这将顺时针旋转相机,这意味着内容将逆时针旋转。

scale#

返回x,y刻度。

zoom#

应用于投影的缩放。只返回x比例尺的值。

class arcade.SimpleCamera(*, viewport: Tuple[int, int, int, int] | None = None, projection: Tuple[float, float, float, float] | None = None, window: Window | None = None)[源代码]#

基类:

一个简单的摄像头,允许改变视窗,投影,并可以四处移动。就这样。更高级的内容见arcade.Camera。

参数:
  • viewport -- 视区大小:(左、下、宽、高)

  • projection -- 摄影机视口中要分配的空间(左、右、下、上)

center(vector: Vec2 | tuple, speed: float = 1.0) None[源代码]#

使相机在坐标上居中

get_map_coordinates(camera_vector: Vec2 | tuple) Vec2[源代码]#

根据相机位置从屏幕坐标返回以像素为单位的地图坐标

参数:

camera_vector -- 从摄影机视口中捕获的矢量

move(vector: Vec2 | tuple) None[源代码]#

以1.0的速度移动相机,也就是即时移动

这等效于调用move_to(my_pos,1.0)

move_to(vector: Vec2 | tuple, speed: float = 1.0) None[源代码]#

设置相机的目标位置。

相机将基于提供的速度向此位置缓慢移动,并在每次调用use()函数时更新其位置。

参数:
  • vector -- 向量移动相机。

  • speed -- 移动摄像头的速度有多快,1.0是瞬间,0.1是缓慢移动

resize(viewport_width: int, viewport_height: int, *, resize_projection: bool = True) None[源代码]#

调整摄影机的视区大小。当窗口调整大小时调用此函数。

参数:
  • viewport_width -- 视区的宽度

  • viewport_height -- 视区的高度

  • resize_projection -- 如果为True,则投影也将调整大小

set_viewport(viewport: Tuple[int, int, int, int]) None[源代码]#

设置视区

update()[源代码]#

将摄影机的视区更新为当前设置。

use() None[源代码]#

选择要使用的此相机。在你画画之前做这件事。

projection#

要在摄影机视口中投影的空间尺寸(左、右、下、上)。投影是要投影到摄影机视口中的对象。

projection_to_viewport_height_ratio#

投影高度与视区高度的比率

projection_to_viewport_width_ratio#

投影宽度与视口宽度的比率

viewport#

摄像头将在屏幕上保留的空间(左、下、宽、高)

viewport_height#

返回视区的高度

viewport_to_projection_height_ratio#

视区高度与投影高度的比率

viewport_to_projection_width_ratio#

视区宽度与投影宽度的比率

viewport_width#

返回视区的宽度