cocos js 自定义抖动动作

自定义抖动动作,记录备查

 1 /**
 2  * 自定义抖动动作
 3  */
 4 var Shake = cc.ActionInterval.extend({
 5     //节点初始位置
 6     nodeInitialPos:null,
 7     //X轴抖动幅度
 8     nodeShakeStrengthX:0,
 9     //Y轴抖动幅度
10     nodeShakeStrengthY:0,
11     //抖动时间
12     duration:0,
13     ctor:function(duration,shakeStrengthX,shakeStrengthY){
14         cc.ActionInterval.prototype.ctor.call(this);
15         this.duration = duration;
16         this.initWithDuration(duration,shakeStrengthX,shakeStrengthY);
17
18     },
19     //获取两个数间的随机值
20     getRandomStrength:function(min,max){
21         return Math.random()*(max-min+1)+min;
22     },
23     update:function(dt){
24         var randX=this.getRandomStrength(-this.nodeShakeStrengthX,this.nodeShakeStrengthX)*dt;
25         var randY=this.getRandomStrength(-this.nodeShakeStrengthY,this.nodeShakeStrengthY)*dt;
26 //        cc.log("randX:"+randX+",randY="+randY);
27         this.target.setPosition(cc.pAdd(this.nodeInitialPos,cc.p(randX,randY)));
28     },
29     initWithDuration:function(duration,shakeStrengthX,shakeStrengthY){
30         if (cc.ActionInterval.prototype.initWithDuration.call(this, duration)) {
31             this.nodeShakeStrengthX=shakeStrengthX;
32             this.nodeShakeStrengthY=shakeStrengthY==‘undefined‘?shakeStrengthX:shakeStrengthY;
33             return true;
34         }
35         return false;
36     },
37     startWithTarget:function(target){
38         cc.ActionInterval.prototype.startWithTarget.call(this, target);
39         this.nodeInitialPos=target.getPosition();
40     },
41     stop:function(){
42         this.target.setPosition(this.nodeInitialPos);
43     }
44 });
45 /**
46  * 自定义抖动动作
47  * @param {float}duration 抖动时间
48  * @param {number}shakeStrengthX X轴抖动幅度
49  * @param {number}shakeStrengthY Y轴抖动幅度
50  * @returns {Shake}
51  */
52 cc.shake = function(duration,shakeStrengthX,shakeStrengthY){
53     return new Shake(duration,shakeStrengthX,shakeStrengthY);
54 };

使用方式:

1 var action = cc.shake(0.4,20,20);
2 xx.runAction(action);

参考文章:http://blog.csdn.net/teng_ontheway/article/details/25307889

本文地址:http://www.cnblogs.com/wangjiajun/p/4670036.html

时间: 2024-10-10 12:28:59

cocos js 自定义抖动动作的相关文章

在js自定义函数中使用$(event.target)代替$(this)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <ti

js自定义对象

<script type="text/javascript" src="out.js"></script> <script> /* *如果想要自定义对象,应该对对象进行描述*js是基于对象,不是面向对象.不具备描述事物的能力.*如果想按照面向对象的思想编写js.*就要先描述,在js中,可以用函数来模拟面对对象的中的描述*/ //用js来描述人/*function Person(){//相当于构造器alert("perso

Vue.js自定义指令的用法与实例

市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲自定义指令的用法. 自定义指令是用来操作DOM的.尽管Vue推崇数据驱动视图的理念,但并非所有情况都适合数据驱动.自定义指令就是一种有效的补充和扩展,不仅可用于定义任何的DOM操作,并且是可复用的. 比如谷歌图片的加载做得非常优雅,在图片未完成加载前,用随机的背景色占位,图片加载完成后才直接渲染出来.用自定义指令可以非常方便的实现这个功能. 效果: 自定义

原型设计模式prototype-构造js自定义对象

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* * 原型模式: prototype 原型属性 对象的原型拥有的属性,该对象的实例对象也会同时拥有 */ function Test(){ } T

XAF 框架中,自定义参数动作(Action),输入参数的控件可定义,用于选择组织及项目

XAF 框架中,如何生成一个自定义参数动作(Action),输入参数的控件可定义? 参考文档:https://documentation.devexpress.com/eXpressAppFramework/113183/Task-Based-Help/Actions/How-to-Customize-Action-Controls 示例 XAF 安装中带的 示例方案: Feature Center 默认安装在 :%PUBLIC%\Documents\DevExpress Demos 17.1\

与你相遇好幸运,Sails.js自定义responses

在 /api/responses/ 新建文件 >serviceDBError.js 自定义的数据库错误 >serviceError.js  自定义的数据错误 >serviceSuccess.js 自定义的数据成功信息 serviceSuccess.js内容示例: module.exports = function serviceSuccess (msg,result){ var res = this.res; res.status(200); res.json({ "statu

Angular JS 自定义服务

Angular JS 自定义服务  定义服务的方式有如下几种: 1 变量方式(value Recipe)     2 工厂方式(factory Recipe)     3 服务方式(service Recipe)     4 供应者方式(provider Recipe)     5 常量方式(Constant Recipe)     6 特殊目的对象(Special Purpose Objects) 使用value来定义 var mainApp = angular.module("mainApp

漫谈js自定义事件、DOM/伪DOM自定义事件

一.说明.引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾的碎碎念,可能没什么条理,可能有表述不准确的地方,可能内容比较拗口生僻.如果您时间紧迫,或者JS造诣已深,至此您就可以点击右侧广告(木有?则RSS或盗版)然后撤了. 事件是个大课题,真要从断奶开始讲起的话,可以写个12期的连载.关于JS事件的文章(类似DOM/BOM事件模型,IE与其他浏览器事件差异,DOM1/DOM2事件定义等)落叶般随处可见.熟豆子反复炒一点意思都没有,因此,这里谈谈自己感兴趣的自定义事件以及周边. 所谓自定义

js自定义事件、DOM/伪DOM自定义事件

一.说明.引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾的碎碎念,可能没什么条理,可能有表述不准确的地方,可能内容比较拗口生僻.如果您时间紧迫,或者JS造诣已深,至此您就可以点击右侧广告(木有?则RSS或盗版)然后撤了. 事件是个大课题,真要从断奶开始讲起的话,可以写个12期的连载.关于JS事件的文章(类似DOM/BOM事件模型,IE与其他浏览器事件差异,DOM1/DOM2事件定义等)落叶般随处可见.熟豆子反复炒一点意思都没有,因此,这里谈谈自己感兴趣的自定义事件以及周边. 所谓自定义