窗口和视图#
- class arcade.Section(left: int, bottom: int, width: int, height: int, *, name: str | None = None, accept_keyboard_keys: bool | Iterable = True, accept_mouse_events: bool | Iterable = True, prevent_dispatch: Iterable | None = None, prevent_dispatch_view: Iterable | None = None, local_mouse_coordinates: bool = False, enabled: bool = True, modal: bool = False, draw_order: int = 1)[源代码]#
基类:
部分表示视口事件的矩形部分,根据其在屏幕上的位置将事件调度到该部分。
- 参数:
left -- 此部分的左侧位置
bottom -- 此部分的底部位置
width -- 此部分的宽度
height -- 这一段的高度
name -- 此部分的名称
accept_keyboard_keys (Union[bool, Iterable]) -- 此部分是否通过捕获键盘键。键盘事件。如果参数是可迭代的,则表示在按下/释放事件中捕获的键盘键:例如: [arcade.key.UP, arcade.key.DOWN] 将仅捕获这两个密钥
accept_mouse_events (Union[bool, Iterable]) -- 此部分是否捕获鼠标事件。如果参数是可迭代的,则表示捕获的鼠标事件。例如: ['on_mouse_press', 'on_mouse_release'] 只会捕捉到这两个事件。
prevent_dispatch -- 不会调度到后续节的事件名称列表。您可以传递None(默认)或{True}以阻止调度所有事件。
prevent_dispatch_view -- 不会调度到视图的事件名称列表。您可以传递None(默认)或{True}以阻止将所有事件调度到视图。
local_mouse_coordinates -- 如果为True,则分区鼠标事件将收到与分区尺寸和位置相关的x,y坐标分区(与屏幕无关)
enabled -- 如果为FALSE,则该部分不会捕获任何事件
modal -- 如果为True,则该节将是模式节:将阻止其他节上的更新和事件捕获。也将最后(在顶部)绘制,但首先捕获事件。
draw_order -- 调用ON_DRAW时此部分的顺序。数字越低,抽签时间越早。这可以不同于事件捕获顺序或由插入顺序定义的ON_UPDATE顺序。
- bottom#
此部分的底边
- draw_order#
返回绘制顺序状态数字越小,此部分将越早绘制
- enabled#
启用或禁用此部分
- height#
这一段的高度
- left#
此部分的左边缘
- modal#
返回模式状态(阻止以下部分接收输入事件和更新)
- right#
此部分的右边缘
- section_manager#
返回节管理器
- top#
此部分的上边缘
- view#
此部分设置所在的视图
- width#
此部分的宽度
- window#
查看窗口
- class arcade.SectionManager(view: View)[源代码]#
基类:
这将管理一个视图具有的不同部分。将事件调度到正确的部分、绘制顺序等操作。
- add_section(section: Section, at_index: int | None = None, at_draw_order: int | None = None) None [源代码]#
向该分区添加分区管理器将触发分区。如果启用分区,则为ON_SHOW_SECTION
- 参数:
section -- 要添加到此分区管理器的分区
at_index -- 在该索引处插入事件捕获和更新事件的节。如果末尾没有
at_draw_order -- 以特定的绘图顺序插入横断面。覆盖第.DRAW_ORDER节
- dispatch_keyboard_event(event: str, *args, **kwargs) bool | None [源代码]#
将键盘事件调度到正确部分的泛型方法
- 参数:
event -- 要调度的键盘事件名称
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- dispatch_mouse_enter_leave_events(event_origin: str, x: int, y: int, *args, **kwargs) bool | None [源代码]#
此帮助器方法将根据“On_MICE_Motion”和“On_MICE_Drag”事件将鼠标进入/离开事件分派到部分。还将调度调用此方法的事件(EVENT_ORIGURCE
- 参数:
event_origin -- 调用此方法的鼠标事件名称。此活动将在此处调用。
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- dispatch_mouse_event(event: str, x: int, y: int, *args, current_section: Section | None = None, **kwargs) bool | None [源代码]#
将鼠标事件调度到正确部分的泛型方法
- 参数:
event -- 要调度的鼠标事件名称
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
current_section -- 此鼠标事件应传递到的节。如果没有,将基于x,y坐标检索应接收此事件的所有节
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- get_first_section(x: int, y: int, *, event_capture: bool = True) Section | None [源代码]#
根据x,y位置返回第一个节
- 参数:
x -- X轴坐标
y -- Y轴坐标
event_capture -- True将使用事件捕获尺寸,False将使用截面绘制大小
- 返回:
部分如果与参数匹配,否则不匹配
- get_section_by_name(name: str) Section | None [源代码]#
返回具有给定名称的第一节:param name:所需节的名称:Return:具有所提供名称的第一节。别无选择
- get_sections(x: int, y: int, *, event_capture: bool = True) Generator[Section, None, None] [源代码]#
返回基于x,y位置的节列表
- 参数:
x -- X轴坐标
y -- Y轴坐标
event_capture -- True将使用事件捕获尺寸,False将使用截面绘制大小
- 返回:
具有与参数匹配的部分的生成器
- on_draw() None [源代码]#
在每个事件循环上调用以绘制它时,会自动为每个具有摄影机的部分调用camera.use(),然后在需要时通过调用默认的SectionManager摄影机来重置摄影机效果。SectionManager照相机默认为具有整个屏幕的视区和投影的照相机
- on_key_press(*args, **kwargs) bool | None [源代码]#
在相应的部分或视图上触发ON_KEY_PRESS事件
- 参数:
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- on_key_release(*args, **kwargs) bool | None [源代码]#
在相应的部分或视图上触发ON_KEY_RELEASE事件
- 参数:
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- on_mouse_drag(x: int, y: int, *args, **kwargs) bool | None [源代码]#
此方法调度ON_MOUSE_Drag,并计算是否应触发ON_MOUSE_ENTER/Leave
- 参数:
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- on_mouse_enter(x: int, y: int, *args, **kwargs) bool | None [源代码]#
当鼠标进入窗口空间时触发,将在相应的部分或视图上触发ON_MOUSE_ENTER
- 参数:
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- on_mouse_leave(x: int, y: int, *args, **kwargs) bool | None [源代码]#
当鼠标离开窗口空间时触发,将在相应的部分或视图上触发ON_MOUSE_LEVE
- 参数:
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- on_mouse_motion(x: int, y: int, *args, **kwargs) bool | None [源代码]#
此方法调度ON_MOUSE_MOTION,并计算是否应触发ON_MOUSE_ENTER/Leave
- 参数:
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- on_mouse_press(x: int, y: int, *args, **kwargs) bool | None [源代码]#
在相应的节或视图上触发ON_MOUSE_PRESS事件
- 参数:
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- on_mouse_release(x: int, y: int, *args, **kwargs) bool | None [源代码]#
在相应的节或视图上触发ON_MOUSE_RELEASE事件
- 参数:
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- on_mouse_scroll(x: int, y: int, *args, **kwargs) bool | None [源代码]#
在相应的节或视图上触发ON_MOUSE_SCROLL事件
- 参数:
x -- X轴坐标
y -- Y轴坐标
args -- 应传递给调度的事件的任何其他位置参数
kwargs -- 应传递给调度的事件的任何其他关键字参数
- 返回:
EVENT_HANDLED或EVENT_UNHANDLED,或调度的方法返回的任何值
- has_sections#
如果此节管理器具有节,则返回TRUE
- is_current_view#
返回该节管理器视图是否为视图窗口上的当前视图(也称为:当前正在显示的视图
- sections#
返回节列表的属性
- class arcade.View(window: Window | None = None)[源代码]#
基类:
在一个窗口中支持不同的视图/屏幕。
- add_section(section, at_index: int | None = None, at_draw_order: int | None = None) None [源代码]#
将横断面添加到视图横断面管理器。
- 参数:
section -- 要添加到此分区管理器的分区
at_index -- 在该索引处插入事件捕获和更新事件的节。如果末尾没有
at_draw_order -- 以特定的绘图顺序插入横断面。覆盖第.DRAW_ORDER节
- clear(color: Tuple[int, int, int] | Tuple[int, int, int, int] | None = None, color_normalized: Tuple[float, float, float, float] | None = None, viewport: Tuple[int, int, int, int] | None = None)[源代码]#
使用通过设置的配置背景色清除窗口
arcade.Window.background_color
。
- on_key_press(symbol: int, modifiers: int)[源代码]#
覆盖此功能以添加按键功能。
- 参数:
symbol -- 按下的键
modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_key_release(_symbol: int, _modifiers: int)[源代码]#
重写此函数以添加按键释放功能。
- 参数:
_symbol -- 按下的键
_modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_mouse_drag(x: int, y: int, dx: int, dy: int, _buttons: int, _modifiers: int)[源代码]#
覆盖此函数以添加鼠标按钮功能。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
dx -- 自上次调用此方法以来x的变化
dy -- 自上次调用此方法以来y的更改
_buttons -- 按下了哪个按钮
_modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_mouse_leave(x: int, y: int)[源代码]#
当鼠标移出窗口时调用。如果当前正在拖动鼠标,则不会触发此事件。请注意,鼠标指针的坐标将位于窗口矩形之外。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
- on_mouse_motion(x: int, y: int, dx: int, dy: int)[源代码]#
覆盖此函数以添加鼠标功能。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
dx -- 自上次调用此方法以来x的变化
dy -- 自上次调用此方法以来y的更改
- on_mouse_press(x: int, y: int, button: int, modifiers: int)[源代码]#
覆盖此函数以添加鼠标按钮功能。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
button -- 哪个按钮被按下了。其中之一:arcade.MOUSE_BUTTON_LEFT,arcade.MOUSE_BUTTON_RIGHT,arcade.MOUSE_BUTTON_MIDE.
modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_mouse_release(x: int, y: int, button: int, modifiers: int)[源代码]#
覆盖此函数以添加鼠标按钮功能。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
button -- 哪个按钮被按下了。其中之一:arcade.MOUSE_BUTTON_LEFT,arcade.MOUSE_BUTTON_RIGHT,arcade.MOUSE_BUTTON_MIDE.
modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_mouse_scroll(x: int, y: int, scroll_x: int, scroll_y: int)[源代码]#
用户移动滚轮。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
scroll_x -- 自上次调用以来已滚动的x个像素的ammout
scroll_y -- 自上次调用以来滚动的y个像素的ammout
- on_resize(width: int, height: int)[源代码]#
在此视图处于活动状态时调整窗口大小时调用。
on_resize()
也是单独调用的。默认情况下,此方法不执行任何操作,可以重写以处理调整大小逻辑。
- on_show()[源代码]#
已弃用。使用
on_show_view()
取而代之的是。
- has_sections#
如果视图包含节,则返回
- section_manager#
节管理器的延迟实例化
- class arcade.Window(width: int = 800, height: int = 600, title: str | None = 'Arcade Window', fullscreen: bool = False, resizable: bool = False, update_rate: float = 0.016666666666666666, antialiasing: bool = True, gl_version: Tuple[int, int] = (3, 3), screen: Screen | None = None, style: str | None = None, visible: bool = True, vsync: bool = False, gc_mode: str = 'context_gc', center_window: bool = False, samples: int = 4, enable_polling: bool = True, gl_api: str = 'gl', draw_rate: float = 0.016666666666666666)[源代码]#
基类:
BaseWindow
Window类构成了使用Arade的大多数高级游戏的基础。它代表屏幕上的一个窗口,并管理事件。
- 参数:
width -- 窗口宽度
height -- 窗高
title -- 标题(显示在标题栏中)
fullscreen -- 这应该是全屏显示吗?
resizable -- 用户可以调整窗口大小吗?
update_rate -- 运行ON_UPDATE事件的频率。
draw_rate -- 运行ON_DRAW事件的频率。(这是FPS限制)
antialiasing -- 是否应该启用OpenGL的抗锯齿功能?
gl_version -- 要请求的OpenGL版本。这是
(3, 3)
默认情况下,并且在使用更高级的OpenGL功能时可以被覆盖。screen -- 传递一个侏儒
Screen
以请求将窗口放置在其上。看见 pyglet's window size & position guide 了解更多信息。style -- 请求非默认窗口样式,如无边框。有些款式只在某些情况下有效。看见 pyglet's guide to window style 了解更多信息。
visible -- 窗口是否应立即可见
vsync -- 在交换缓冲区之前等待垂直屏幕刷新这可以使动画和移动看起来更流畅。
gc_mode -- 决定应如何垃圾收集OpenGL对象(“CONTEXT_GC”(默认)或“AUTO”)
center_window -- 如果为True,将使窗口居中。
samples -- 抗锯齿中使用的采样数(默认为4)。通常是2、4、8或16。
enable_polling -- 已启用输入轮询功能。这使得
keyboard
和mouse
可用的属性。
- clear(color: Tuple[int, int, int] | Tuple[int, int, int, int] | None = None, color_normalized: Tuple[float, float, float, float] | None = None, viewport: Tuple[int, int, int, int] | None = None)[源代码]#
使用通过设置的配置背景色清除窗口
arcade.Window.background_color
。
- flip()[源代码]#
窗口帧缓冲区通常有后台缓冲区和前台缓冲区。此方法使后台缓冲区可见,并隐藏前台缓冲区。一个帧被渲染到后台缓冲区中,因此此方法显示我们当前处理的帧。
此方法还会在交换缓冲区之前对OpenGL资源进行垃圾回收。
- hide_view()[源代码]#
隐藏当前活动的视图(如果有),使我们返回
on_draw
和on_update
窗口中的函数。如果要切换视图,则不需要调用此选项。只需拨打
show_view
再来一次。
- on_key_press(symbol: int, modifiers: int)[源代码]#
当按下键时调用一次。
覆盖此功能以添加按键功能。
小技巧
如果您想要按键的长度影响游戏,您还需要覆盖
on_key_release()
。- 参数:
symbol -- 刚按下的钥匙
modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_key_release(symbol: int, modifiers: int)[源代码]#
在释放键时调用一次。
重写此函数以添加按键释放功能。
需要处理密钥释放的情况包括:
一种节奏游戏,音符必须保持一定的时间
根据按键被按下的时间长短而改变强度的“充电”动作
显示当前按下的键
- 参数:
symbol -- 刚刚发布的钥匙
modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_mouse_drag(x: int, y: int, dx: int, dy: int, buttons: int, modifiers: int)[源代码]#
在鼠标按下按钮移动时重复调用。
重写此函数以处理拖动。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
dx -- 自上次调用此方法以来x的变化
dy -- 自上次调用此方法以来y的更改
buttons -- 按下了哪个按钮
modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_mouse_leave(x: int, y: int)[源代码]#
每当鼠标离开屏幕上的窗口区域时调用一次。
如果当前正在拖动鼠标,则不会触发此事件。请注意,鼠标指针的坐标将位于窗口矩形之外。
- 参数:
x --
y --
- on_mouse_motion(x: int, y: int, dx: int, dy: int)[源代码]#
当鼠标在窗口上移动时重复调用。
重写此函数以响应鼠标位置的更改。
- 参数:
x -- 窗口内鼠标的X位置,以像素为单位
y -- 窗口内鼠标的Y位置,以像素为单位
dx -- 自上次调用此方法以来x的变化
dy -- 自上次调用此方法以来y的更改
- on_mouse_press(x: int, y: int, button: int, modifiers: int)[源代码]#
每当按下鼠标按钮时调用一次。
重写此函数以处理鼠标单击。有关如何执行此操作的示例,请参阅Arcade的内置 aiming and shooting bullets 演示。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
button -- 按下了什么按钮。这将始终是以下之一: *
arcade.MOUSE_BUTTON_LEFT
*arcade.MOUSE_BUTTON_RIGHT
*arcade.MOUSE_BUTTON_MIDDLE
modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_mouse_release(x: int, y: int, button: int, modifiers: int)[源代码]#
每当释放鼠标按键时调用一次。
重写此函数以响应鼠标按键释放。当您想要使用鼠标单击的持续时间来影响游戏时,这可能很有用。
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
button -- 哪个按钮被按下了。其中之一:arcade.MOUSE_BUTTON_LEFT,arcade.MOUSE_BUTTON_RIGHT,arcade.MOUSE_BUTTON_MIDE.
modifiers -- 在此事件期间激活的所有修饰符(Shift、Ctrl、Num Lock)的按位‘and’。看见 修饰词 。
- on_mouse_scroll(x: int, y: int, scroll_x: int, scroll_y: int)[源代码]#
在鼠标滚轮移动时重复调用。
重写此函数以响应滚动事件。滚动参数可以是正的,也可以是负的,以指示方向,但单位不是标准化的。根据系统设置和使用的输入设备(如鼠标滚轮、触摸板等),不同计算机收到的滚动步数可能会有很大差异。
警告
并不是所有的用户都可以轻松地滚动!
只有一些输入设备支持水平滚动。标准的垂直滚动很常见,但一些笔记本触摸板很难使用。
这意味着您应该注意如何使用滚动。考虑将其设置为可选选项,以最大限度地增加可以玩您游戏的人数!
- 参数:
x -- 鼠标的X位置
y -- 鼠标的Y位置
scroll_x -- 自上次调用此函数以来水平滚动的步数
scroll_y -- 自上次调用此函数以来垂直滚动的步数
- on_resize(width: int, height: int)[源代码]#
重写此函数可添加自定义代码,以便在调整窗口大小时随时调用。此方法的主要职责是更新投影和视区。
如果在重写时不更改默认行为,请确保调用父级的
on_resize
第一名::def on_resize(self, width: int, height: int): super().on_resize(width, height) # Add extra resize logic here
- 参数:
width -- 新宽度
height -- 新高度
- run() None [源代码]#
运行主循环。在设置了窗口并且事件挂钩就位之后,这通常是主程序上最后的命令之一。这是一个阻塞函数,启动了pyglet的事件循环,这意味着它将开始分派事件,例如
on_draw
和on_update
。
设置窗口的标题。
- set_fullscreen(fullscreen: bool = True, screen: Window | None = None, mode: ScreenMode | None = None, width: float | None = None, height: float | None = None)[源代码]#
设置我们是否全屏。
- 参数:
fullscreen --
screen -- 我们应该在哪个屏幕上显示?看见
get_screens()
mode -- 屏幕将切换到给定模式。该模式必须是通过枚举 Screen.get_modes 。如果没有,将从给定的模式中选择合适的模式 width 和 height 。
width --
height --
- set_max_size(width: int, height: int)[源代码]#
包装Pyglet窗口调用以设置最大大小
- 参数:
width -- 以像素为单位的宽度。
height -- 以像素为单位的高度。
- 引发ValueError:
- set_min_size(width: int, height: int)[源代码]#
包装Pyglet窗口调用以设置最小大小
- 参数:
width -- 以像素为单位的宽度。
height -- 以像素为单位的高度。
- set_mouse_platform_visible(platform_visible=None)[源代码]#
警告
您可能正在寻找
set_mouse_visible()
好了!实现此方法是为了防止PyCharm显示Linter警告。大多数用户永远不需要设置特定于平台的可见性,因为来自pyglet的默认设置通常会自动处理他们的需求。
有关这意味着什么的更多信息,请参阅
pyglet.window.Window.set_mouse_platform_visible()
。
- set_mouse_visible(visible: bool = True)[源代码]#
设置是否在窗口上方显示系统光标
默认情况下,只要鼠标悬停在窗口上,系统鼠标光标就可见。要隐藏光标,请传递
False
这项功能。经过True
以使光标再次可见。当光标隐藏时,窗口将继续接收鼠标事件,包括移动和点击。这意味着像这样的功能
on_mouse_motion()
和t‘:meth:`~.Window.on_ouse_press`将继续正常工作。您可以使用此行为以可视方式将系统鼠标光标替换为您想要的任何内容。一个例子是 a game character that is always at the most recent mouse position in the window 。
备注
高级用户可以尝试使用系统光标状态图标
可以使用表示光标交互状态的系统图标,例如沙漏或通过使用功能调整箭头大小
arcade.Window
继承自基础的Piglet窗口类。请参阅 pyglet overview on cursors 以获取更多信息。- 参数:
visible -- 是否隐藏系统鼠标光标
- set_update_rate(rate: float)[源代码]#
设置On_UPDATE函数的调度频率。例如,self.set_update_rate(1/60)会将更新速率设置为每秒60次。
- 参数:
rate -- 更新频率(秒)
- show_view(new_view: View)[源代码]#
选择要在下一帧中显示的视图。这不是显示该视图的阻塞调用。在此调用之后,您的代码将继续运行,并且该视图将出现在
on_update
/on_draw
`。调用此函数与设置
arcade.Window.current_view
属性。- 参数:
new_view -- 要显示的视图
- background_color#
获取或设置此窗口的背景色。这会影响窗口在以下情况下将包含的颜色
clear()
被称为。示例:
# Use Arcade's built in Color values window.background_color = arcade.color.AMAZON # Set the background color with a custom Color instance MY_RED = arcade.types.Color(255, 0, 0) window.background_color = MY_RED # Set the background color directly from an RGBA tuple window.background_color = 255, 0, 0, 255 # (Discouraged) # Set the background color directly from an RGB tuple # RGB tuples will assume 255 as the opacity / alpha value window.background_color = 255, 0, 0
- 类型:
颜色
- ctx#
此窗口的OpenGL上下文。
- current_view#
此属性返回当前显示的视图。若要设置不同的视图,请调用
arcade.Window.show_view()
方法。
- default_camera#
提供对默认街机摄影机的引用。自动将投影和视图设置为屏幕的大小。适用于重置屏幕。
- headless#
如果这是一扇无头窗户
- 类型:
布尔尔
- arcade.get_screens() List [源代码]#
返回屏幕列表。因此,对于双显示器设置,这应该返回两个屏幕的列表。可与arcade.Window配合使用,以选择在哪个窗口上全屏显示。
- 返回:
屏幕列表,每个显示器一个屏幕。
- arcade.open_window(width: int, height: int, window_title: str | None = None, resizable: bool = False, antialiasing: bool = True) Window [源代码]#
此功能用于打开一个窗口。为了便于使用,我们假设只有一个窗口,程序员不需要保留该窗口的句柄。这不是最好的体系结构,因为窗口句柄存储在全局中,但如果程序员不必跟踪窗口指针,它会使事情变得更容易。
- 参数:
width -- 窗口的宽度。
height -- 窗的高度。
window_title -- 窗口的标题。
resizable -- 用户是否可以调整窗口大小。
antialiasing -- 要平滑图形吗?
- 返回:
窗口的句柄
- arcade.finish_render()[源代码]#
交换缓冲区并显示已绘制的内容。
警告
如果您要扩展
Window
类,则不应调用此函数。之后,事件循环将自动为您交换窗口帧缓冲区on_draw
。
- arcade.get_display_size(screen_id: int = 0) Tuple[int, int] [源代码]#
返回监视器的宽度和高度。
默认情况下,返回主监视器的大小。
- 参数:
screen_id -- 屏幕编号
- 返回:
包含屏幕宽度和高度的元组
- arcade.run()[源代码]#
运行主循环。在设置了窗口并且事件挂钩就位之后,这通常是主程序上最后的命令之一。这是一个阻塞函数,启动了pyglet的事件循环,这意味着它将开始分派事件,例如
on_draw
和on_update
。
- arcade.schedule(function_pointer: Callable, interval: float)[源代码]#
计划每隔一天自动调用一个函数
interval
几秒钟。函数/Callable需要接受类似如下的增量时间参数on_update
。这是一个浮点数,表示自调度或调用以来的秒数。一个函数可以多次调度,但不建议这样做。
警告
计划的功能应 always 未按计划使用
arcade.unschedule()
。具有挥之不去的预定函数将导致崩溃。示例::
def some_action(delta_time): print(delta_time) # Call the function every second arcade.schedule(some_action, 1) # Unschedule
- 参数:
function_pointer -- 指向要调用的函数的指针。
interval -- 调用函数的间隔(浮点型或整型)
- arcade.schedule_once(function_pointer: Callable, delay: float)[源代码]#
安排一个函数在以下时间后自动调用
delay
几秒钟。函数/Callable需要接受类似如下的增量时间参数on_update
。这是一个浮点数,表示自调度或调用以来的秒数。示例::
def some_action(delta_time): print(delta_time) # Call the function once after 1 second arcade.schedule_one(some_action, 1)
- 参数:
function_pointer -- 指向要调用的函数的指针。
delay -- 以秒为单位的延迟
- arcade.set_background_color(color: Tuple[int, int, int, int]) None [源代码]#
设置颜色
arcade.Window.clear()
将在清除窗口时使用。这只需要在背景颜色更改时调用。备注
设置背景颜色的一种更短、更快的方法是使用
arcade.Window.background_color
。示例:
# Use Arcade's built in color values arcade.set_background_color(arcade.color.AMAZON) # Specify RGB value directly (red) arcade.set_background_color((255, 0, 0))
- 参数:
RGBA255 -- RGB/RGBA格式的3或4个值的列表。
- arcade.start_render() None [源代码]#
清除窗口。
此功能更实用的替代方案是
arcade.Window.clear()
或arcade.View.clear()
。