-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Description
// 渲染控制点
Events.on(render, "afterRender", () => {
const ctx = render.context;
// 获取所有物体
const bodies = Composite.allBodies(engine.world);
// 如果 isBig 为 false,强制所有控制点不可见
if (!state.isBig) {
bodies.forEach((body) => {
if (body.controlPoints) {
body.controlPoints.isSelected = false;
}
});
return;
}
// 找到 zIndex 最高的物体
const topBody = bodies.reduce((prev, current) => {
return (prev.render.zIndex || 0) > (current.render.zIndex || 0)
? prev
: current;
}, bodies[0]);
// 只渲染最高层物体的控制点
if (topBody?.controlPoints) {
topBody.controlPoints.isSelected = true;
renderControlPoints(ctx, topBody, rotateIcon);
// 确保其他物体的控制点不显示
bodies.forEach((body) => {
if (body !== topBody && body.controlPoints) {
body.controlPoints.isSelected = false;
}
});
}
});我在这个事件中使用render.context画的控制点. 这个事件会一直执行 为什么啊 求解答🙏
Metadata
Metadata
Assignees
Labels
No labels