cocos2d实现刮奖效果

[cpp]  view plain  copy
  1. bool HelloWorld::init()  
  2. {  
  3.     if ( !Layer::init() )  
  4.     {  
  5.         return false;  
  6.     }  
  7.     Size visibleSize = Director::getInstance()->getVisibleSize();  
  8.     auto sprite = Sprite::create("HelloWorld.png");  
  9.     sprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));  
  10.     this->addChild(sprite);  
  11.     dotNode = DrawNode::create();  
  12.     dotNode->retain();  
  13.     dotNode->drawDot(Point(0, 0), 4.0f, Color4F(255, 0, 0, 255));  
  14.     auto pBg = Sprite::create("bg.png"); //这个作为当“油漆层”    
  15.     pBg->setAnchorPoint(Point(0.5, 0.5));  
  16.     pBg->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));  
  17.     pRender = RenderTexture::create(visibleSize.width, visibleSize.height);  
  18.     pRender->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));  
  19.     this->addChild(pRender); //渲染纹理层需加入该父节点层    
  20.     pRender->begin();  
  21.     pBg->visit();  
  22.     pRender->end();  
  23.     auto listener = EventListenerTouchOneByOne::create();  
  24.     listener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan,this);  
  25.     listener->onTouchMoved = CC_CALLBACK_2(HelloWorld::onTouchMoved,this);  
  26.     listener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);  
  27.     _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);  
  28.     return true;  
  29. }  

[cpp]  view plain  copy
  1. void HelloWorld::onTouchMoved(Touch *touch, Event *unused_event)  
  2. {  
  3.     auto touchPoint = touch->getLocation();  
  4.     dotNode->setPosition(touchPoint.x, touchPoint.y);  
  5.     //设置混合模式  
  6.     BlendFunc blendFunc = { GL_ONE, GL_ZERO };  
  7.     dotNode->setBlendFunc(blendFunc);  
  8.     //将橡皮擦的像素渲染到画布上,与原来的像素进行混合  
  9.     pRender->begin();  
  10.     dotNode->visit();  
  11.     pRender->end();  
  12. }  

效果图:




猜你喜欢

转载自blog.csdn.net/liu943367080/article/details/79360320
今日推荐