#1338·matter-js

afterRender 事件相关问题

作者: guotaotao789创建于 2025年4月12日更新于 2025年4月12日

// 渲染控制点 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画的控制点。这个事件会一直执行 为什么啊 求解答

内容来源: liabru/matter-js