废话没有,直接上代码,有注释可以看的,


cc.Class({
extends: cc.Component, properties: {
//
player:{
default:null,
type:cc.Node,
tooltip:"this is a tips"//属性检查器内的自定义提示信息
}
}, onLoad:function(){
//////////使用动作系统///////////////////////////////////
//var action1=this.player.moveTo(2,100,100); cc.
//this.node.runAction(action1); error //action 1 简单移动动作
//var action1=cc.moveTo(2,100,100);
//this.player.runAction(action1); // 2 顺序执行的动作
//var seq0=cc.sequence(cc.moveBy(2,200,0),cc.moveBy(2,-200,0)) ;
//this.player.runAction(seq0); // 3 同步动作 让节点在向上移动的同时缩放
//var spawn = cc.spawn(cc.moveBy(0.5, 0, 50), cc.scaleTo(0.5, 0.8, 1.4));
//this.player.runAction(spawn); // 4 重复动作 cc.repeat 重复动作用来多次重复一个动作
/*
var seq=cc.repeat(
cc.sequence(
cc.moveBy(2,200,0),
cc.moveBy(2,-200,0)),5 );
this.player.runAction(seq); */ //5 永远重复 循环
/*
var seq0=cc.repeatForever(cc.sequence(cc.moveBy(2,200,0),cc.moveBy(2,-200,0))) ;
this.player.runAction(seq0); */ //6 速度动作
/*
var seq1=cc.speed(
cc.spawn(
cc.moveBy(2,200,0),
cc.scaleTo(2, 0.8, 1.4)
),0.5 );
this.player.runAction(seq1); */
// 一个复杂的跳跃动画
var JumpAction = cc.sequence(
cc.spawn(
cc.scaleTo(0.1, 0.8, 1.2),
cc.moveTo(0.1, , )
),
cc.spawn(
cc.scaleTo(0.2, , ),
cc.moveTo(0.2, , )
),
cc.delayTime(0.5),
cc.spawn(
cc.scaleTo(0.1, 1.2, 0.8),
cc.moveTo(0.1, , -)
),
cc.spawn(
cc.scaleTo(0.2, , ),
cc.moveTo(0.2, , )
)
// 以1/2的速度慢放动画,并重复5次
).speed().repeat();
this.player.runAction(JumpAction);
}, start :function() {
//获取组件所在的节点,只要在组件方法里访问 this.node 变量:
var node=this.node;
console.log(node.name+":0000000000000000000000000");
//获取其他组件,获得同一个节点上的其它组件,这就要用到 getComponent 这个 API
var canvas=this.getComponent(cc.Canvas);//canvas 为object
var text=canvas.name+":11111111111111111111111111";
console.log(text);
//也可以为 getComponent 传入一个类名
var label = this.getComponent("cc.Canvas");
console.log(label.name+":222222222222222222");//输出结果同上
//对用户定义的组件而言,类名就是脚本的文件名,且区分大小写。
//在节点上也有一个 getComponent 方法,它们的作用是一样的:
cc.log( this.node.getComponent(cc.Label) === this.getComponent(cc.Label) ); // true
/*如果在节点上找不到你要的组件,getComponent 将返回 null,如果你尝试访问 null 的值,
将会在运行时抛出 "TypeError" 这个错误。因此如果你不确定组件是否存在,记得判断一下:*/
if(this.node.getComponent(cc.label)){
console.log("this node had label component");
}
else{
console.log("this node don't have this component");
}
////////////////////////////////////////////////////////////////////////
//获得其它节点及其组件
// 最直接的方式就是在 属性检查器 中设置需要的对象。只需要在脚本中声明对应属性即可:1
//接着就可以将层级管理器上的任意一个节点拖到这个 player 控件,即可,之后可以直接在脚本里访问 player:this.player.xxxx
///////////////////////查找子节点/////////////////////////////////////////////////////////////
//游戏场景中有很多个相同类型的对象,像炮塔、敌人和特效通常都有一个全局的脚本来统一管理。此时不适合使用属性检查器一个个关联到脚本。为了更好地统一管理这些对象,可以统一的父物体下,然后通过父物体来获得所有的子物体:
var cannnos=this.node.children;
for(var i=;i<cannnos.length;i++)
{
console.log(cannnos[i].name);//不包括自身
}
//还可以使用 getChildByName:this.node.getChildByName("Cannon 01");
// console.log(this.node.getChildByName("richtext").name);
//全局名字查找 当 cc.find 只传入第一个参数时,将从场景根节点开始逐级查找:
//this.backNode = cc.find("Canvas/Menu/Back",this.node);
////////////////////////访问已有变量里的值//////////////////////////////////////////////////////////////
//1,通过全局变量访问
/*你应当很谨慎地使用全局变量,当你要用全局变量时,应该很清楚自己在做什么,我们并不推荐滥用全局变量,即使要用也最好保证全局变量只读。
让我们试着定义一个全局对象 window.Global,这个对象里面包含了 backNode 和 backLabel 两个属性。
// Globals.js, this file can have any name
window.Global = {
backNode: null,
backLabel: null,
};
由于所有脚本都强制声明为 "use strict",因此定义全局变量时的 window. 不可省略。
接着你可以在合适的地方直接访问并初始化 Global:
// Back.js
cc.Class({
extends: cc.Component,
onLoad: function () {
Global.backNode = this.node;
Global.backLabel = this.getComponent(cc.Label);
}
});
初始化后,你就能在任何地方访问到 Global 里的值:
// AnyScript.js
cc.Class({
extends: cc.Component,
// start 会在 onLoad 之后执行,所以这时 Global 已经初始化过了
start: function () {
var text = 'Back';
Global.backLabel.string = text;
}
});
访问全局变量时,如果变量未定义将会抛出异常。
添加全局变量时,请小心不要和系统已有的全局变量重名。
你需要小心确保全局变量使用之前都已初始化和赋值。 */
//2,通过模块访问
/*通过模块访问
如果你不想用全局变量,你可以使用 require 来实现脚本的跨文件操作,让我们看个示例:
// Global.js, now the filename matters module.exports = {
backNode: null,
backLabel: null,
};
每个脚本都能用 require + 文件名(不含路径) 来获取到对方 exports 的对象。
// Back.js // this feels more safe since you know where the object comes from
var Global = require("Global"); cc.Class({
extends: cc.Component, onLoad: function () {
Global.backNode = this.node;
Global.backLabel = this.getComponent(cc.Label);
}
});
// AnyScript.js // this feels more safe since you know where the object comes from
var Global = require("Global"); cc.Class({
extends: cc.Component, // start 会在 onLoad 之后执行,所以这时 Global 已经初始化过了
start: function () {
var text = "Back";
Global.backLabel.string = text;
}
});*/
},
});

CocosCreator动作系统的更多相关文章

  1. Cocos Creator 中的动作系统那些事儿

    动作系统就是可以在一定的时间内实现位移.旋转.缩放.跳动等各种动作. 需要注意的是,动作系统跟 Cocos Creator 编译器的动画系统不同,动作系统是面向程序员的API接口,而动画系统是通过编译 ...

  2. Unity Animation System(动画系统)

    动画系统: 支持:动画融合,混合,叠加动画,行走循环的时间同步,动画层,控制动画的各个方面(时间,速度,融合权重)   带有每顶点1.2或4骨骼的蒙皮网格,以及支持基于物理的布娃娃系统和程序动画.   ...

  3. cocos2d-x 详解之 CCAction(动作)

    关于动作部分,总的来说使用起来比较简单,创建一个动作,然后让可渲染节点如精灵去执行这个动作即可.cocos2dx提供了很多类型的动作,使用起来也很方便.本节重点介绍动作CCAction的子类之一时间动 ...

  4. cocos2d动作讲解

    从本章开始,我们开始讲解cocos2d-x库的动作(Action).游戏的世界是一个动态的世界:无论是主角精灵还是NPC精灵都处于不断的运动当中,甚至是背景中漂流的树叶,随风而动的小草.这些明显的或者 ...

  5. Simple2D-25 精灵动作

    精灵动画作用在精灵上,使精灵表现出动画效果.本文将详细说明如何创建一个简单的动作系统,暂时只有 4 中基本的动作——平移.旋转.缩放和 Alpha 变化,并且这些动作能够自由组合,组成串行动作或并行动 ...

  6. FlappyBird

    学习CocosCreator有段时间了,现在花了两天时间写了个像素鸟的小游戏,这个游戏之前又看到过,但是不知道怎么又下架了,之前还是蛮火的游戏,想起来后去网上看了看,原来是因为侵犯了 超级玛丽 的游戏 ...

  7. Andorid视觉新冲击-Material design语言

    [写在前面] google在2014年 I/O大会上推出了一种新的设计设计语言—Material design,这种设计语言语言旨在为手机.平板电脑.台式机和“其他平台”提供更一致.更广泛的“外观和感 ...

  8. Cocos2d-JS游戏导演

    什么是游戏的导演 具体来说,Cocos2d-JS中的导演是一个对象,它负责设置游戏的运行环境,控制游戏的住循环并且管理场景和场景的切换. 导演的任务 Cocos2d-JS中导演对象名为:cc.dire ...

  9. Intent的七大属性

    1.Action Action属性代表系统要执行的动作 系统提供如下常用的Action属性 *ACTION_MAIN:应用程序入口点 *ACTION_VIEW:显示指定数据 *ACTION_EDIT: ...

随机推荐

  1. 红黑树与AVL树

    概述:本文从排序二叉树作为引子,讲解了红黑树,最后把红黑树和AVL树做了一个比较全面的对比. 1 排序二叉树 排序二叉树是一种特殊结构的二叉树,可以非常方便地对树中所有节点进行排序和检索. 排序二叉树 ...

  2. centos常用网络管理命令

    网卡配置命令:ifconfig (ip addr , ip link) ifconfig:显示所有活动状态的相关信息    ifconfig Interface:仅显示指定接口的相关信息    ifc ...

  3. spring事物深入了解

    1.问题 1.以前对事物的了解只是停留在声明式事物,配置xml,或使用注解,事物的传播行为也只用过REQUIRED和SUPPORTS,可以说对事物的了解很模糊. 2.直到在开发中遇到问题.. 问题的描 ...

  4. jmeter之beanshell取出需要参数,传递给下个请求

    jmeter之beanshell取出需要参数,传递给下个请求 事件背景: 上周同事用jmeter录制脚本,录制成功回放后,并没有达到自己想要的结果. ps:他想从数据库取出某个字段值,然后对数据库做操 ...

  5. Go语言规格说明书 之 类型声明(Type declarations)

    go version go1.11 windows/amd64 本文为阅读Go语言中文官网的规则说明书(https://golang.google.cn/ref/spec)而做的笔记,完整的介绍Go语 ...

  6. 在vue-cli中引用公共过滤器filter

    在实际项目开发中,在某一组件中声明的全局过滤器Vue.filter并不能在其他组件中使用,所以,我认为只要调用两次以上或者可能会被调用两次以上的过滤器,就应该写入统一个过滤器文件中,方便统一调用.下面 ...

  7. java StringTokenizer

    在java引入正则表达式和Scanner类之前分割字符串的唯一方法是使用StringTokenizer来分词,不过现在有了正则表达式和Scanner类我们可以使用更加简单更加简洁的方式来完成同样的工作 ...

  8. javafx点击鼠标出现弹窗,demo

    在学习javafx的过程中,不知道怎么出现一个弹窗,如,点击一个按钮出现一个修改信息的列表选项 终于在javafx文档示例中发现了类似的东西,记录一下,备忘package demo9_button; ...

  9. SPFILEOPENBANKDB.ORA 手动编辑产生问题

    因为最近启动后发现经常内存高占用,一个ORACLE实例占用超过7G内存,两个就15G,卡的让人坐立不安.于是百度了一下,使用下面的命令将sga_max_size从7G修改为200M show para ...

  10. 一篇笔记带你梳理JVM工作原理

    首先要了解的 数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某个对象的引用, ...