游戏中 ClippingNode 实现 标题划过的光效 (C++)


直接把如下代码写到HelloWorld.cpp文件中即可:

// 创建裁剪节点
	auto clipNode = ClippingNode::create();
	auto spriteClip = CCSprite::create("game_title.png");
	// 设置裁剪模板
	clipNode->setStencil(spriteClip);
	// 设置透明度阀值
	clipNode->setAlphaThreshold(0);
	// 设置裁剪节点大小
	clipNode->setContentSize(CCSize(spriteClip->getContentSize().width, spriteClip->getContentSize().height));
	// 获取裁剪节点大小
	auto clipSize = clipNode->getContentSize();
	clipNode->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));

	// 添加精灵到裁剪节点上
	auto gameTitle = CCSprite::create("game_title.png");
	auto spark = CCSprite::create("spark.png");
	clipNode->addChild(gameTitle, 1);
	spark->setPosition(Vec2(-visibleSize.width/2, 0));
	clipNode->addChild(spark, 3);
	this->addChild(clipNode, 5);

	// 执行动作
    auto moveAction = MoveTo::create(2.5f, Vec2(clipSize.width, 0));
	auto delayTime = CCDelayTime::create(1.5f);
	auto rePlace = CCPlace::create(Vec2(-clipSize.width, 0));
	auto seq = Sequence::create(moveAction, delayTime, rePlace, NULL);
	auto repeatAction = RepeatForever::create(seq);
	spark->runAction(repeatAction);


效果如下图: (使用资源,一张标题图片,一张光效图   自己找两张就行了!!!)



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值