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 使用

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

  1. Hexo瞎折腾系列(9) - 网页标题崩溃特效

    前言 本系列的所有修改均基于本系列第一篇中的新增文件(譬如custom.js),请先自行阅读Hexo瞎折腾系列(1) - 准备工作与简单美化:并按照文章所说自行修改代码或文件. 为网页添加标题崩溃特效 ...

  2. jQuery - 制作非缘勿扰页面特效

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. ShineTime - 带有 CSS3 闪亮特效的缩略图相册

    ShineTime 是一个效果非常精致的缩略图相册,鼠标悬停到缩略图的时候有很炫的闪光效果,基于 CSS3 实现,另外缩略图也会有立体移动的效果.特别适用于个人摄影作品,公司产品展示等用途,快来来围观 ...

  4. Sequence.js 实现带有视差滚动特效的图片滑块

    Sequence.js 功能齐全,除了能实现之前分享过的现代的图片滑动效果,还可以融合当前非常流行的视差滚动(Parallax Scrolling)效果.让多层背景以不同的速度移动,形成立体的运动效果 ...

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

    一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 ...

  6. cocos2d js jsb XMLHttpRequest 中文乱码

    1.首先讲下怎样使用XMLHttpRequest 下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中. 首先要明确cocos2d js事实上分两个版本号,一个是html5的版本号,另 ...

  7. cocos2d js的一些tip

    cocos2d-js-v3.2-rc0 cc.director.end();//退出app cc.Application.getInstance().openURL("http://www. ...

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

    js判断网页标题包含某字符串则替换,代码如下: var tit=document.title; if(tit.indexOf("afish")>0){ tit=tit.rep ...

  9. Blazor组件自做七 : 使用JS隔离制作定位/持续定位组件

    1. 运行截图 演示地址 2. 在文件夹wwwroot/lib,添加geolocation子文件夹,添加geolocation.js文件 本组件主要是调用浏览器两个API实现基于浏览器的定位功能,现代 ...

随机推荐

  1. ACM_梦中的函数

    梦中的函数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 寒假那段时间,每天刷题的小G连做梦都是代码,于是有了这道题. 给定一个 ...

  2. ACM_栈的压入、弹出序列

    栈的压入.弹出序列 Time Limit: 2000/1000ms (Java/Others) Problem Description: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列 ...

  3. Java中的异常注意点

    在java中 使用throw关键字抛出异常       使用throws关键字声明异常 public static void main(String[] args) throws Exception{ ...

  4. [Android]异常9-自定义PopupWindow出现闪屏

    背景: 自定义PopupWindow使用时,Android4.0或者一些手机正常使用,Android6.0或者部分手机使用自定义PopupWindow触发事件时,出现闪屏 异常原因: 可能一>A ...

  5. ffmpeg rtp时间戳

    ffmpeg rtp时间戳 ffmpeg  c  一.介绍 在ffmpeg中,每帧都会存在一个pts用来表示该帧图像在视频流中的位置.而在多路流(比如视频.音频)时,往往需要进行多媒体的同步,使得画面 ...

  6. 小程序 之picker-view省市县

    代码地址:https://github.com/yangsphp/area-picker

  7. gitlab 第1次提交代码到1个新仓库

    1.如果是本地刚刚搭建好git环境,第一次和gitlab服务器产生连接 参照这个文 https://www.cnblogs.com/kaerxifa/p/10929098.html 2.已经和gitl ...

  8. word-spacing和letter-spacing区别

    word-spacing:单词与单词间的间距 letter-spacing:字母与字母间的间距

  9. c++ map: 当map的value是void*指针

    #include <iostream> #include <map> #include <vector> using namespace std; //key is ...

  10. MySQL中是索引

    MySQL中是索引: --.唯一索引: 一行中的内容不能一样, create t2( id int , num int, unique weiyisuiyin (id,num) ) --唯一; --约 ...