GameUtil.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /**
  2. * 游戏工具类
  3. * @description 依据引擎Api的工具类,用于操作引擎相关系统的开关、操作引擎相关的api属性,比如坐标
  4. * @author 冯聪
  5. */
  6. export default class GameUtil {
  7. /** 获取屏幕尺寸 */
  8. public getWinSize(): cc.Size {
  9. return cc.winSize;
  10. }
  11. /** 激活物理系统 */
  12. public enablePhysics() {
  13. cc.director.getPhysicsManager().enabled = true;
  14. }
  15. /** 绘制物理信息 */
  16. public debugDrawPhysicsFlag(ifDraw: boolean = false) {
  17. if (ifDraw) {
  18. cc.director.getPhysicsManager().debugDrawFlags =
  19. cc.PhysicsManager.DrawBits.e_aabbBit |
  20. cc.PhysicsManager.DrawBits.e_jointBit |
  21. cc.PhysicsManager.DrawBits.e_shapeBit;
  22. }
  23. else {
  24. cc.director.getPhysicsManager().debugDrawFlags = 0;
  25. }
  26. }
  27. /**
  28. * 获取世界坐标
  29. * @param 需要获取的节点
  30. */
  31. public static getWorldPos(node: cc.Node): cc.Vec2 {
  32. let originX = node.x;
  33. let originY = node.y;
  34. let curNode = node;
  35. while (curNode.parent) {
  36. let parent = curNode.parent;
  37. if (parent.name == 'Canvas') {
  38. break;
  39. }
  40. originX += parent.x;
  41. originY += parent.y;
  42. curNode = parent;
  43. }
  44. return new cc.Vec2(originX, originY);
  45. }
  46. }