跳到主要内容

PloyApp

Ploy3DDocs


Ploy3D / PloyApp

Class: PloyApp

应用基类。

Constructors

new PloyApp()

new PloyApp(engine): PloyApp

构造函数。

Parameters

engine: Ploy3D

引擎实例。

Returns

PloyApp

Properties

engine

engine: Ploy3D

引擎实例。


event_listener

event_listener: Record<string, (event) => Promise<void>[]>

事件监听器。


events

events: Record<string, any>

事件绑定列表。


sdl_canvas?

optional sdl_canvas: any

本机窗口UI画布。


sdl_window?

optional sdl_window: any

本机窗口实例。


started

started: boolean

应用是否已启动。


ui_canvas?

optional ui_canvas: HTMLCanvasElement

UI画布元素(DENO环境下用于创建Image等资源)。


ui_ctx

ui_ctx: CanvasRenderingContext2D

UI画布渲染上下文。


CK_InitUI()

static CK_InitUI: (app) => Promise<void>

CanvasKit初始化主画布。

Parameters

app: PloyApp

Returns

Promise<void>


SDL2_InitEvent()

static SDL2_InitEvent: (app) => Promise<void>

SDL2事件绑定。

Parameters

app: PloyApp

Returns

Promise<void>


SDL2_InitWindow()

static SDL2_InitWindow: (app, title, width, height, progress) => Promise<boolean>

SDL2窗口初始化。

Parameters

app: PloyApp

title: string

width: number

height: number

progress

Returns

Promise<boolean>


SDL2_SolveEvent()

static SDL2_SolveEvent: () => void

SDL2事件处理方法。

Returns

void

Methods

AddEventListener()

AddEventListener(type, listener): void

注册事件监听器。

Parameters

type: string

事件类型。

listener

事件监听器。

Returns

void


Awake()

Awake(): void

唤醒帧循环(部分终端中setInterval会引起页面卡顿,应使用requestAnimationFrame)。

Returns

void


CreateAtmosphere()

CreateAtmosphere(scene): Promise<object>

创建地球大气层对象。

Parameters

scene: Scene

场景实例。

Returns

Promise<object>

返回地球大气层相关资源。

draw_params

draw_params: object

网格绘制参数对象。

draw_params.castShadows?

optional castShadows: boolean

draw_params.cullMode

cullMode: number

draw_params.flags

flags: number

draw_params.frontFace

frontFace: number

draw_params.instances

instances: number[][]

draw_params.layers

layers: number

draw_params.materials

materials: object[]

draw_params.mesh

mesh: Mesh

draw_params.receiveShadows?

optional receiveShadows: boolean

draw_params.topology?

optional topology: GLPrimitiveTopology

draw_params.userData

userData: number

material

material: Material

材质资源实例。

mesh

mesh: Mesh

网格资源实例。


CreateTransformCtrl()

CreateTransformCtrl(scene): Promise<TransformCtrl>

创建变换组件控制器工具。

Parameters

scene: Scene

场景实例。

Returns

Promise<TransformCtrl>

返回变换组件控制器工具。


Draw2D()

Draw2D(): void

绘制场景2D画面。

Returns

void


Draw3D()

Draw3D(): void

绘制场景3D画面。

Returns

void


DrawFrame()

DrawFrame(count, count2d?): void

绘制3D帧(该方法的调用不影响帧率)。

Parameters

count: number

将绘制不小于参数指定的帧数。

count2d?: number

将绘制不小于参数指定的2D帧数。

Returns

void


InitEngine()

InitEngine(progress): Promise<boolean>

初始化引擎。

Parameters

progress

进度刷新函数。

Returns

Promise<boolean>

是否初始化成功。


InitEvent()

InitEvent(): Promise<void>

初始化事件系统。

Returns

Promise<void>

返回事件协程。


InitScene()

InitScene(progress): Promise<boolean>

初始化场景。

Parameters

progress

进度刷新函数。

Returns

Promise<boolean>

是否初始化成功。


InitUI()

InitUI(progress): Promise<boolean>

初始化UI。

Parameters

progress

进度刷新函数。

Returns

Promise<boolean>

是否初始化成功。


InitWindow()

InitWindow(title, width, height, progress): Promise<boolean>

初始化窗口。

Parameters

title: string

主窗口标题。

width: number

主窗口宽度。

height: number

主窗口高度。

progress

进度刷新函数。

Returns

Promise<boolean>

是否初始化成功。


Progress()

Progress(rate, msg, log?): void

主进度条显示控制。

Parameters

rate: number

进度(-1表示隐藏进度条)。

msg: string

进度提示。

log?: boolean

是否在控制台打印。

Returns

void


Shutdown()

Shutdown(): Promise<void>

关闭主程序。

Returns

Promise<void>


Startup()

Startup(title, width, height): Promise<void>

启动主程序。

Parameters

title: string

主窗口标题。

width: number

主窗口宽度。

height: number

主窗口高度。

Returns

Promise<void>

返回事件协程。


Status()

Status(): void

收集当前运行状态信息。

Returns

void


Step()

Step(): boolean

场景帧更新绘制。

Returns

boolean

返回false表示无必要进一步步进。


Update()

Update(flags): void

更新场景。

Parameters

flags: number

更新标志集(1-更新2D场景,2-更新3D场景)。

Returns

void