You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
1.3 KiB

  1. require("luaScript.Tools.Nodes.CCNode")
  2. cc.Node2D.ClassName = "Node2D";
  3. function cc.Node2D:extend(node)
  4. end
  5. function cc.Node2D:cloneLua(node)
  6. end
  7. function cc.Node2D:saveToXmlNode(xmlNode)
  8. cc.Node.saveToXmlNode(self , xmlNode);
  9. xmlNode.AnchorPoint = self:getAnchorPoint()
  10. xmlNode.Color = self:getColor()
  11. xmlNode.Opacity = self:getOpacity()
  12. end
  13. function cc.Node2D:loadFromXmlNode(xmlNode)
  14. cc.Node.loadFromXmlNode(self , xmlNode);
  15. if xmlNode.AnchorPoint then
  16. self:setAnchorPoint(xmlNode.AnchorPoint);
  17. self:setColor(xmlNode.Color)
  18. if xmlNode.Opacity then
  19. self:setOpacity(xmlNode.Opacity)
  20. end
  21. end
  22. end
  23. function cc.Node2D:createNode()
  24. local node = cc.Node2D:create();
  25. self:extend(node);
  26. return node;
  27. end
  28. -- 注册点击事件(判断节点大小,全屏的,但是会根据渲染顺序派发)
  29. function cc.Node2D:registerClick(onClick)
  30. local function onTouchBegan(touch , event)
  31. if not self:isVisibleR() then
  32. return false;
  33. end
  34. local point = touch:getLocation();
  35. local nsp = self:convertToNodeSpace2D(point);
  36. local size = self:getContentSize();
  37. local bb = cc.rect(0,0 , size.width , size.height);
  38. if cc.rectContainsPoint(bb , nsp) then
  39. onClick();
  40. return true;
  41. end
  42. return false;
  43. end
  44. self:setTouchEnabled(true)
  45. self:registerTouch(onTouchBegan);
  46. end