Skip to content

Scene & Node ​

Scene ​

场景根节点(type=1),管理多个 Layer。

层管理 ​

方法说明
registerLayer(layer)注册层
getLayer(name)按名称获取层
removeLayer(name)移除层

节点操作 ​

add(child) 默认添加到 default 层。

交互 ​

方法说明
pick(point)跨层命中检测(从高 layerIndex 向下搜索)
position(point)逆矩阵坐标映射
getQueue()收集所有层的渲染队列

Node ​

叶子节点(type=3),场景图中的可渲染单元。

工厂方法 ​

typescript
const node = Node.create('circle', { fill: 'red', stroke: '#000' });
node.shape.from(100, 200, 50); // cx, cy, r

Node.create(type, attrs?) — 创建指定类型的节点。

属性 ​

属性类型说明
shapeShape几何形状
attrsAttributes视觉属性
shapeTypestring形状注册名

命中检测 ​

hit(point) — 基于 OffscreenCanvas 的精确命中检测。

Group ​

分组容器(type=2),使用方式:

typescript
import { Group, Node } from 'rendx-engine';

const group = new Group();
group.translate(100, 100);

const child = Node.create('rect', { fill: '#0066ff' });
child.shape.from(0, 0, 50, 30);
group.add(child);

app.scene.add(group);

Layer ​

分层渲染节点(type=4),继承 Group。

属性/方法说明
layerName层名称
layerIndex层级序号
renderer独立渲染器
culling是否启用视口裁剪(默认 true)
getQueue()本层渲染队列
draw()执行渲染
resize(size)更新渲染器尺寸

Graphics 基类 ​

所有场景节点的公共基类,继承 EventTarget。

树操作 ​

add, remove, removeChildren, unshift, find(name), query(path), traverse(fn), path(), root, has(name, deep?), source(target)

标识 ​

setName, setClassName, addClassName, hasClassName, is(name), equals(target)

可见性 ​

setVisible(v, bySelf?), setDisplay(d, bySelf?), setPointerEvents(pe, bySelf?)

变换 ​

typescript
// 增量变换
node.translate(tx, ty);
node.rotate(radian);
node.scale(sx, sy);

// 矩阵设置
node.setMatrix(mat2d);
node.setWorldMatrix(mat2d);

// 只读 getter
node.translation; // [tx, ty]
node.rotation;    // radian
node.scaling;     // [sx, sy]

Z 排序 ​

setZ(z), getZIndex()