窗口和视图#
arcade.close_window#
arcade.create_orthogonal_projection#
arcade.exit#
arcade.finish_render#
arcade.get_display_size#
arcade.get_projection#
arcade.get_scaling_factor#
arcade.get_viewport#
arcade.get_window#
arcade.pause#
- arcade.pause(seconds: numbers.Number) None [源代码]#
暂停指定的秒数。这是一个非常方便的函数,它只调用time.睡眠()。
警告
这主要用于单元测试,不太可能是暂停应用程序或游戏的好解决方案。
- 参数
seconds (float) -- 暂停的时间间隔(秒)。
arcade.run#
arcade.schedule#
- arcade.schedule(function_pointer: Callable, interval: numbers.Number)[源代码]#
计划每隔一天自动调用一个函数
interval
几秒钟。函数/Callable需要接受类似如下的增量时间参数on_update
。这是一个浮点数,表示自调度或调用以来的秒数。一个函数可以多次调度,但不建议这样做。
警告
计划的功能应 始终 未按计划使用
arcade.unschedule()
。具有挥之不去的预定函数将导致崩溃。示例::
def some_action(delta_time): print(delta_time) # Call the function every second arcade.schedule(some_action, 1) # Unschedule
- 参数
function_pointer (Callable) -- 指向要调用的函数的指针。
interval (Number) -- 调用函数的间隔(浮点型或整型)
arcade.set_background_color#
- arcade.set_background_color(color: Union[Tuple[int, int, int], List[int], 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))
- 参数
color (Color) -- RGB/RGBA格式的3或4个值的列表。
arcade.set_viewport#
- arcade.set_viewport(left: float, right: float, bottom: float, top: float) None [源代码]#
这将设置窗口将覆盖的坐标。
小技巧
初学者会想要使用
Camera
。它为常见任务提供了易于使用的支持,例如屏幕抖动和移动到目的地。如果您正在制作一个对视区进行复杂控制的游戏,此功能会有所帮助。
默认情况下,左下角坐标将为
(0, 0)
,顶部的y坐标将是以像素为单位的窗口高度,右侧的x坐标将是以像素为单位的窗口宽度。警告
注意分数或非多重值!
建议仅将视区设置为与屏幕上的像素对齐的整数值。否则,平铺的像素图片在渲染过程中可能不会很好地对齐,从而产生矩形瑕疵。
注解
Window.on_resize
呼叫set_viewport
默认情况下。如果要在游戏期间设置自己的自定义视区,则可能需要重写on_resize
方法。注解
对于更高级的用户
This functions sets the orthogonal projection used by shapes and sprites. It also updates the viewport to match the current screen resolution.
window.ctx.projection_2d
(projection_2d()
) andwindow.ctx.viewport
(viewport()
) can be used to set viewport and projection separately.- 参数
left (Number) -- 最左侧(最小)的x值。
right (Number) -- 最右侧(最大)的x值。
bottom (Number) -- 底部(最小)y值。
top (Number) -- 最高(最大)y值。
arcade.set_window#
arcade.start_render#
- arcade.start_render() None [源代码]#
清除窗口。
此功能更实用的替代方案是
arcade.Window.clear()
或arcade.View.clear()
。
arcade.unschedule#
arcade.Section#
- class arcade.Section(left: int, bottom: int, width: int, height: int, *, name: Optional[str] = None, accept_keyboard_events: Union[bool, Iterable] = True, prevent_dispatch: Optional[Iterable] = None, prevent_dispatch_view: Optional[Iterable] = None, local_mouse_coordinates: bool = False, enabled: bool = True, modal: bool = False)[源代码]#
部分表示视口事件的矩形部分,根据其在屏幕上的位置将事件调度到该部分。
- property section_manager: Optional[arcade.sections.SectionManager]#
返回节管理器
- property view#
此部分设置所在的视图
- property window#
查看窗口
arcade.SectionManager#
- class arcade.SectionManager(view)[源代码]#
这将管理一个视图具有的不同部分。将事件调度到正确的部分、绘制顺序等操作。
- add_section(section: arcade.sections.Section, at_index: Optional[int] = None) None [源代码]#
将节添加到该节管理器:参数节:要添加到该节的节管理器:param at_index:在该索引处插入节。如果末尾没有
- dispatch_mouse_event(event: str, x: int, y: int, *args, **kwargs) Optional[bool] [源代码]#
将鼠标事件调度到正确的节的泛型方法
- get_section_by_name(name: str) Optional[arcade.sections.Section] [源代码]#
返回具有给定名称的第一个节
- on_draw()[源代码]#
在每个事件循环上调用。首先调度VIEW事件,然后调度部分事件。它会自动为每个具有摄影机的部分调用camera.use(),并在需要时通过随后调用默认的SectionManager摄影机来重置摄影机效果。
- on_mouse_drag(x: int, y: int, *args, **kwargs) Optional[bool] [源代码]#
- 此方法调度On_MICE_Drag并计算
如果应触发On_MICE_ENTER/Leave
- on_mouse_motion(x: int, y: int, *args, **kwargs) Optional[bool] [源代码]#
- 此方法调度ON_MICE_MOTION并计算
如果应触发On_MICE_ENTER/Leave
- remove_section(section: arcade.sections.Section) None [源代码]#
从此分区管理器中删除分区
arcade.NoOpenGLException#
arcade.View#
- class arcade.View(window: Optional[arcade.application.Window] = None)[源代码]#
在一个窗口中支持不同的视图/屏幕。
- add_section(section, at_index: Optional[int] = None) None [源代码]#
将横断面添加到视图横断面管理器。:param段:要添加到该节的节管理器:param at_index:在该索引处插入节。如果末尾没有
- clear(color: Optional[Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]]] = None, normalized: bool = False, viewport: Optional[Tuple[int, int, int, int]] = None)[源代码]#
使用通过设置的配置背景颜色清除视图的窗口
arcade.Window.background_color
。
- on_mouse_drag(x: int, y: int, dx: int, dy: int, _buttons: int, _modifiers: int)[源代码]#
覆盖此函数以添加鼠标按钮功能。
- on_resize(width: int, height: int)[源代码]#
在此视图处于活动状态时调整窗口大小时调用。
on_resize()
也是单独调用的。默认情况下,此方法不执行任何操作,可以重写以处理调整大小逻辑。
- on_show()[源代码]#
已弃用。使用
on_show_view()
取而代之的是。
arcade.Window#
- class arcade.Window(width: int = 800, height: int = 600, title: Optional[str] = 'Arcade Window', fullscreen: bool = False, resizable: bool = False, update_rate: Optional[float] = 0.016666666666666666, antialiasing: bool = True, gl_version: Tuple[int, int] = (3, 3), screen: Optional[pyglet.canvas.base.Screen] = None, style: Optional[str] = None, visible: bool = True, vsync: bool = False, gc_mode: str = 'context_gc', center_window: bool = False, samples: int = 4, enable_polling: bool = True)[源代码]#
Window类构成了使用Arcade的大多数高级游戏的基础。它代表屏幕上的一个窗口,并管理事件。
- 参数
width (int) -- 窗口宽度
height (int) -- 窗高
title (str) -- 标题(显示在标题栏中)
fullscreen (bool) -- 这应该是全屏显示吗?
resizable (bool) -- 用户可以调整窗口大小吗?
update_rate (float) -- 更新窗口的频率。
antialiasing (bool) -- 是否应该启用OpenGL的抗锯齿功能?
gl_version (Tuple[int,int]) -- 要请求的OpenGL版本。这是
(3, 3)
默认情况下,并且在使用更高级的OpenGL功能时可以被覆盖。visible (bool) -- 窗口是否应立即可见
vsync (bool) -- 在交换缓冲区之前等待垂直屏幕刷新这可以使动画和移动看起来更流畅。
gc_mode (bool) -- 决定应如何垃圾收集OpenGL对象(“CONTEXT_GC”(默认)或“AUTO”)
center_window (bool) -- 如果为True,将使窗口居中。
samples (bool) -- 抗锯齿中使用的采样数(默认为4)。通常是2、4、8或16。
enable_polling (bool) -- 已启用输入轮询功能。这使得
keyboard
和mouse
可用的属性。
- property background_color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]]#
获取或设置此窗口的背景色。这会影响窗口在以下情况下将包含的颜色
clear()
被称为。示例:
# Use Arcade's built in color values window.background_color = arcade.color.AMAZON # Specify RGB value directly (red) window.background_color = 255, 0, 0
如果背景颜色为
RGB
值而不是RGBA
我们假设alpha值为255。- 类型
颜色
- clear(color: Optional[Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]]] = None, normalized: bool = False, viewport: Optional[Tuple[int, int, int, int]] = None)[源代码]#
使用通过设置的配置背景色清除窗口
arcade.Window.background_color
。
- property ctx: arcade.context.ArcadeContext#
此窗口的OpenGL上下文。
- property current_view: Optional[arcade.application.View]#
此属性返回当前显示的视图。若要设置不同的视图,请调用
arcade.Window.show_view()
方法。- 返回类型
- flip()[源代码]#
窗口帧缓冲区通常有后台缓冲区和前台缓冲区。此方法使后台缓冲区可见,并隐藏前台缓冲区。一个帧被渲染到后台缓冲区中,因此此方法显示我们当前处理的帧。
此方法还会在交换缓冲区之前对OpenGL资源进行垃圾回收。
- headless#
Bool:如果这是一扇无头窗户
- hide_view()[源代码]#
隐藏当前活动的视图(如果有),使我们返回
on_draw
和on_update
窗口中的函数。如果要切换视图,则不需要调用此选项。只需拨打
show_view
再来一次。
- on_resize(width: float, height: float)[源代码]#
重写此函数可添加自定义代码,以便在调整窗口大小时随时调用。此方法的主要职责是更新投影和视区。
如果在重写时不更改默认行为,请确保调用父级的
on_resize
第一名::def on_resize(self, width: int, height: int): super().on_resize(width, height) # Add extra resize logic here
- on_update(delta_time: float)[源代码]#
把所有东西都搬开。执行冲突检查。在这里做所有的游戏逻辑。
- 参数
delta_time (float) -- 自上次调用函数以来的时间间隔。
- run()[源代码]#
快捷键
arcade.run()
。例如::
MyWindow().run()
- set_fullscreen(fullscreen: bool = True, screen: Optional[arcade.application.Window] = None, mode: Optional[pyglet.canvas.base.ScreenMode] = None, width: Optional[float] = None, height: Optional[float] = None)[源代码]#
设置我们是否全屏。
- 参数
fullscreen (bool) --
screen -- 我们应该在哪个屏幕上显示?看见
get_screens()
mode (pyglet.canvas.ScreenMode) -- 屏幕将切换到给定模式。该模式必须是通过枚举 Screen.get_modes 。如果没有,将从给定的模式中选择合适的模式 width 和 height 。
width (int) --
height (int) --
- set_mouse_platform_visible(platform_visible=None)[源代码]#
此方法仅公开/覆盖,因为它会导致PyCharm显示警告。此功能用于设置特定于平台的鼠标光标可见性,只有高级用户才会关心。
有关详细信息,请参阅侏儒文档。
- set_mouse_visible(visible: bool = True)[源代码]#
如果为True,则当鼠标光标位于窗口上方时,用户可以看到它。设置为False时,鼠标不可见。默认值为True。
- 参数
visible (bool) --
- set_update_rate(rate: float)[源代码]#
设置屏幕的更新频率。例如,self.set_update_rate(1/60)会将更新速率设置为60 fps
- 参数
rate (float) -- 更新频率(秒)
- set_viewport(left: float, right: float, bottom: float, top: float)[源代码]#
设置视区。(我们可以看到的坐标。用于缩放和/或滚动屏幕)。
看见
arcade.set_viewport()
以获取更详细的信息。- 参数
left (Number) --
right (Number) --
bottom (Number) --
top (Number) --
- show_view(new_view: arcade.application.View)[源代码]#
选择要在下一帧中显示的视图。这不是显示该视图的阻塞调用。在此调用之后,您的代码将继续运行,并且该视图将出现在
on_update
/on_draw
`。调用此函数与设置
arcade.Window.current_view
属性。- 参数
new_view (View) -- 要显示的视图