cocos2dx 3.2 裁剪节点 ClippingNode(2)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:03 点击:

1.4、设置触摸事件回调。当触摸点在底板区域内部,则“打洞”

//
void HelloWorld::onTouchesBegan(const std::vector& touches, Event *unused_event)
{
//[1].获取触点, 转换为相对holesClipper节点的 相对坐标
    Vec2 point = touches[0]->getLocation();
    point = holesClipper->convertToNodeSpace(point);
 
     
//[2].获取底板区域矩形Rect
    Sprite* content = (Sprite*)holesClipper->getChildByName("content");
    Size contentSize = content->getContentSize();
    Rect rect = Rect(-contentSize.width / 2, -contentSize.height / 2, contentSize.width, contentSize.height);
 
     
//[3].触摸点在底板内部, 进行"打洞"
    if (rect.containsPoint(point))
    {
        pokeHoleAtPoint(point);
    }
}
//

1.5、实现“打洞”操作函数

//
void HelloWorld::pokeHoleAtPoint(Vec2 point)
{
    CCLOG("Add a Hole!!!");
 
//[1].添加底板内容 : 一个洞的痕迹
    auto hole = Sprite::create("hole_effect.png");
    hole->setPosition(point);
    holes->addChild(hole);
 
 
//[2].添加模板内容 : 一个小洞
    auto holeStencil = Sprite::create("hole_stencil.png");
    holeStencil->setPosition(point);
    holesStencil->addChild(holeStencil);
 
 
//[3].动作效果 : 放大缩小
    holesClipper->runAction(Sequence::create(ScaleTo::create(0.05f, 1.05f), ScaleTo::create(0.05f, 1.0f), NULL));
}
//



发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • Cocos2d-x学习(一):HelloWorld
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d 设置屏幕默认方向
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
  • cocos2d-x学习笔记(15)--地图的使用(TMX)
  • cocos2dx在xcode下开发,编译到android上(2)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1