cocos2d js ClippingNode 制作标题闪亮特效

1.效果图:

之前在《Android 高仿 IOS7 IPhone 解锁 Slide To Unlock》中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似的效果。

顺便给我公司的游戏打下广告。https://itunes.apple.com/cn/app/kuang-zhan-san-guo/id691116157?

mt=8

2.效果原理

很easy。就是一张白色两边羽化的图片在标题上从左往右移动。可是普通的移动会穿帮。我们须要以标题作为模板来截取白色的图片。超出标题的就不能显示出来。ClippingNode 就派上用场了!

3.代码实现

以下是cocos2d js 2.2 的实现, cocos2d-x应该差点儿相同。

var MyLayer = cc.Layer.extend({
    isMouseDown:false,
    helloImg:null,
    helloLabel:null,
    circle:null,
    sprite:null,
    scaleRate:0.8,

    init:function () {

        this._super();

        var size = cc.Director.getInstance().getWinSize();

        var clip = this.clipper();
        var clipSize = clip.getContentSize();
        clip.setPosition(cc.p(size.width / 2, size.height / 2));
        var gameTitle = cc.Sprite.create(s_GameTitle);
		gameTitle.setScale(this.scaleRate);
        var spark = cc.Sprite.create(s_Spark);
        clip.addChild(gameTitle, 1);//先加入标题,会全然显示出来,由于跟模板一样大小
        spark.setPosition(-size.width / 2,0);
        clip.addChild(spark,2);//会被裁减
        clip.setScaleY(1.2);
        this.addChild(clip,4);

		var moveAction = cc.MoveTo.create(0.6, cc.p(clipSize.width, 0));
		var moveBackAction = cc.MoveTo.create(0.6, cc.p(-clipSize.width, 0));
		var seq = cc.Sequence.create(moveAction, moveBackAction);
		var repeatAction = cc.RepeatForever.create(seq);
        spark.runAction(repeatAction);//进行左右移动的反复动作

    },
	 clipper : function(){  //创建以标题作为大小的模板,超出标题部分都会被裁掉
        var clipper = cc.ClippingNode.create();
        var gameTitle = cc.Sprite.create(s_GameTitle);
		gameTitle.setScale(this.scaleRate);
        clipper.setStencil(gameTitle);//创建以标题作为大小的模板
        clipper.setAlphaThreshold(0);
        clipper.setContentSize(cc.size(gameTitle.getContentSize().width, gameTitle.getContentSize().height));
        return clipper;
    }
});

var MyScene = cc.Scene.extend({
    onEnter:function () {
        this._super();
        var layer = new MyLayer();
        this.addChild(layer);
        layer.init();
    }
});

4.项目下载:

http://www.waitingfy.com/?attachment_id=1094

參考:

ClippingNode 使用

时间: 2024-10-09 07:28:23

cocos2d js ClippingNode 制作标题闪亮特效的相关文章

Cocos2d-x3.1利用ClippingNode实现标题闪亮特效

1.掌握ClippingNode的原理与使用 2.创建Cocos工程 3.在HelloWorld.cpp代码中添加如下代码: auto clip = ClippingNode::create();//创建裁剪节点 auto gameTitle = Sprite::create("game_title.png"); clip->setStencil(gameTitle);//设置裁剪模板 clip->setAlphaThreshold(0);//设置透明度阈值 clip-&g

游戏标题走马灯特效

我不知道下面讲的特效的名称,就先叫走马灯特效吧,我也不知道真的走马灯特效是怎样的.这个有点像人浪效果.大致有两种方式实现.当然帧动画也可以做,但帧动画不在我们的讨论范围.程序实现有好处:速度好修改. 1. 每个独立变化 实现原理:大家先不要看整体效果,先特定关注单个子,比如第一个E字,它其实只有两个状态:一个实心,一个空心.它一直在重复一个动作:先变成实心的,很快就变成空心的,再变成实心,再空心...这样反复的交替.注意一个特点:实心出现的停留时间短些,空心的停留时间长些. 再看第二字,U,完全

JS 学习制作一个二级菜单

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>菜单栏</title> 5 <script src="jquery/jquery-2.1.1.js"></script> 6 <script> 7 $(document).ready(function () {

练习2:制作非缘勿扰页面特效的源代码

使用 jQuery 的练习 要求如下:     使用jQuery之前记得去下载一个jquery的架包,而我使用的是jquery-3.2.1版本,放在WebRoot包下,可以自己创建一个包. 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

echarts &nbsp; js 模板制作 地图 案例分享

今天分享一个 echarts   js 模板制作 地图 案例,有类似需求的筒子可以参考 O(∩_∩)O 需求:因为最近管理的全国各地代理服务器越来越多,有时上级需要看下我们的代理分布,比如带宽,比如供应商,如果用纯excel不是很直观,就套用了前端的Js模板,修改了些代码,填充部分值进去,就出来基本效果了. 上效果图: 基本上把全国各地的资源情况很直观的显示出来了,这里只填充了部分值,后期会将值存入mysql,并且用上ajax 来塞值,这里就列个基本的效果图. 5分钟上手echarts,官网教程

一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app

一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 项目地址:https://github.com/jrainlau/wechat-subscriptor 下载&运行 git clone git@github.com:jrainlau/wechat-subscriptor.git cd wechat-subscriptor && np

js图片点击放大特效代码

原文:js图片点击放大特效代码 源代码下载:http://www.zuidaima.com/share/1550463485676544.htm 图片放大js代码实现,运行效果如下:

JS打造抖动的按钮特效(鼠标放上去开始抖动)

<HTML><HEAD> <TITLE>JS打造抖动的按钮特效(鼠标放上去开始抖动)_石家庄水泵厂|草坪销售</TITLE> <META http-equiv=Content-Type content="text/html; charset=gb2312"> </HEAD> <BODY bgColor=#fef4d9><BR><BR> <CENTER>鼠标抖动的按钮&

js判断网页标题包含某字符串则替换

js判断网页标题包含某字符串则替换,代码如下: var tit=document.title; if(tit.indexOf("afish")>0){ tit=tit.replace('http://t.qq.com/wb631992791','小鱼阁'); document.title=tit; js判断网页标题包含某字符串则替换