NodeUtils.ts 737 B

12345678910111213141516171819202122232425262728
  1. import { Node, Size, Vec2, Vec3 } from "cc";
  2. export default class NodeUtils
  3. {
  4. /**
  5. * 获取节点全局坐标
  6. * @param node
  7. * @param out
  8. */
  9. public static GetNodePos(node:Node,out:{x:number,y:number}):void{
  10. let nodePos:Vec3=new Vec3();
  11. let parentPos:Vec3=new Vec3();
  12. let anchorPoint:Vec2=new Vec2();
  13. node.getAnchorPoint(anchorPoint);
  14. let nodeSize:Size=node.getContentSize();
  15. while(node){
  16. node.getPosition(parentPos);
  17. nodePos.x+=parentPos.x;
  18. nodePos.y+=parentPos.y;
  19. node=node.parent;
  20. }
  21. out.x=nodePos.x-anchorPoint.x*nodeSize.width;
  22. out.y=nodePos.y-anchorPoint.y*nodeSize.height;
  23. }
  24. }