cocos2d3.5新手引导

前端之家收集整理的这篇文章主要介绍了cocos2d3.5新手引导前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

游戏中,新手引导经常要用到。这次是基于3.5版本。

思路:创建遮罩,显示区触摸,下层响应。

让引导层继承widget

  1. local Guide = class("Guide",function ()
  2. return ccui.Widget:create()
  3. end)

guide设置描点为self:setAnchorPoint(cc.p(0,0))。这样方便坐标计算。

这样可以方便处理触摸区域的响应。通过点击的落点是否在显示区域,然后设置self.listener:setSwallowTouches(true),可以向下层穿透,响应事件;

  1. function OperationalView:onTouchBegan(touch_,event_)
  2. print(" OperationalView:onTouchBegan began")
  3. local pos = touch_:getLocation()
  4. self._touchPos = cc.p(pos.x,pos.y)
  5. if self._blackBg then
  6. else
  7. self._listener:setSwallowTouches(false)
  8. end
  9. if rectIntersectsPoint(self._stencil:getBoundingBox(),cc.p(pos.x,pos.y)) then
  10. self._listener:setSwallowTouches(false)
  11. end
  12. return true
  13. end



遮罩可以使用cc.LayerColor:create(cc.c4b(0,0))来创建

实现镂空

  1. self._clippingNode = cc.ClippingNode:create()
  2. self._clippingNode:addChild(self._stencil)
  3. self._clippingNode:setStencil(self._stencil)
  4. self._clippingNode:setInverted(true)

self._stencil可以是图片资源,也可以使用cc.DrawNode:create()来创建;

对于下层的响应,设计框架时,按钮的监听事件都通过统一回调处理。或者把widget封装多一层。响应按钮事件后通知guide,下层响应完毕。

猜你在找的Cocos2d-x相关文章