蒙板,局部高亮可点的用处大多是在新手引导的时候,引导玩家一步一步的走游戏的操作流程。
因为设置成圆角的,比较美观,如果不用圆角,可以直接把Sprite改成layercolor,这个版本的缺点是每步都需要美术出一个资源(如果每步的点击区域大小不一样的话),现在这个版本是直接设置大小即可。
这个版本的设计思路是,用layercolor,先把高亮的区域设置好了,然后在layercolor的四个角加上一个小圆角的sprite,这样就不用每步都需要美术出资源了。可以随意的设置高亮区域的大小。本来想直接不用sprite,直接找个方法设置layercolor的圆角的,没找到合适的方法,如果大家有比较合适的更简便的方法,欢迎拍砖。
原理是:渲染的时候,使用异步混合渲染。ccBlendFunc
不多说,直接上代码
为了获取点击事件,所以继承了 CCTargetedTouchDelegate,把touch的权限设置为最高。
//.h
- #ifndef Good_PlayGuide_h
- #define Good_PlayGuide_h
- #include "cocos2d.h"
- using namespace cocos2d;
- class PlayerGuide:public CCSprite , public CCTargetedTouchDelegate
- {
- public:
- PlayerGuide();
- virtual ~PlayerGuide();
- virtual bool init();
- virtual void onEnter();
- virtual void onExit();
- virtual bool ccTouchBegan(CCTouch *touch, CCEvent *event);
- virtual void ccTouchMoved(CCTouch *touch, CCEvent *event);
- virtual void ccTouchEnded(CCTouch *touch, CCEvent *event);
- void onSetSpriteAndPosition(float width,float