Skip to content

父子对象

在 Newcar 中,对象可以通过 children 属性进行嵌套,例如:

javascript
const child = new Circle(200, {
  x: 200,
  y: 300
});

const father = new Circle(300, {
  x: 100,
  y: 200
});

// 添加子组件
father.add(child);

此时,child 的坐标 (200, 300) 不是相对于画布左上角的,而是相对于其父组件的位置。

TIP

此外,父子组件遵循 “子随父动,父不随子动” 的原则。这意味着当父组件移动时,子组件会随之移动。当子组件移动时,父组件将保持静止。

通过这个功能,你可以设置一个背景,并让场景中的对象成为背景的“子对象”,这样在操作角色移动时背景就会向后移动。

INFO

除了坐标之外,旋转角度缩放比例也遵循父子组件原则。

这里的旋转角度指的是相对于父组件整个坐标系统的旋转角度,而不是每个组件的旋转角度数值。

但是将对象保存到变量中既麻烦又低效,因此在 0.7.0 版本之后,我们建议使用链式语法:

javascript
const root = new Widget().add(new Circle(200).setUpdate((elapsed, widget) => {}));

Released under the Apache-2.0 license