Creator脚本

转载 2016年08月28日 17:31:51

获得组件方法:只需要在组件方法里访问this.node变量: 
start: function () { 
var node = this.node; 
node.x = 100; 
}

获得其他组件:需要用到getComponent这个API: 
start: function () { 
var label = this.getComponent(cc.Label); 
var text = this.name + ’ started’; 
label.string = text; 
}

如果在节点上找不到你要的组件,getComponent 将返回 null,如果你尝试访问 null 的值,将会在运行时抛出 “TypeError” 这个错误。因此如果你不确定组件是否存在,请记得判断一下:

start: function () { 
var label = this.getComponent(cc.Label); 
if (label) { 
label.string = “Hello”; 

else { 
cc.error(“Something wrong?”); 

}

仅仅能访问节点自己的组件通常是不够的,脚本通常还需要进行多个节点之间的交互。最直接的方式就是在 属性检查器 中设置你需要的对象。以节点为例,这只需要在脚本中声明一个 type 为 cc.Node 的属性: 
cc.Class({ 
extends: cc.Component, 
properties: { 
// 声明 player 属性 
player: { 
default: null, 
type: cc.Node 


}); 
这里声明了一个player属性,默认值为null,并且指定对象为cc.node。接着你就可以将层级管理器上的任意一个节点拖到这个 Player 控件,这样一来它的 player 属性就会被设置成功,你可以直接在脚本里访问 player: 
var Player = require(“Player”);

cc.Class({ 
extends: cc.Component, 
properties: { 
// 声明 player 属性 
player: { 
default: null, 
type: cc.Node 

},

start: function () {
    var playerComp = this.player.getComponent(Player);
    this.checkPlayer(playerComp);
},

// ...

});

有时候,游戏场景中会有很多个相同类型的对象,像是炮塔、敌人和特效,它们通常都有一个全局的脚本来统一管理。如果用 属性检查器 来一个一个将它们关联到这个脚本上,那工作就会很繁琐。为了更好地统一管理这些对象,我们可以把它们放到一个统一的父物体下,然后通过父物体来获得所有的子物体: 
cc.Class({ 
extends: cc.Component,

start: function () {
    this.cannons = [];
    this.cannons = this.node.getChildren();
}

}); 
全局名字查找:当 cc.find 只传入第一个参数时,将从场景根节点开始逐级查找: 
this.backNode = cc.find(“Canvas/Menu/Back”);

通过全局变量访问,试着定义一个全局对象 window.Global,这个对象里面包含了 backNode 和 backLabel 两个属性: 
window.Global = { 
backNode: null, 
backLabel: null, 
}; 
由于所有脚本都强制声明为 “use strict”,因此定义全局变量时的 window. 不可省略。 
接着你可以在合适的地方直接访问并初始化 Global: 
cc.Class({ 
extends: cc.Component,

onLoad: function () {
    Global.backNode = this.node;
    Global.backLabel = this.getComponent(cc.Label);
}

}); 
初始化后,你就能在任何地方访问到 Global 里的值: 
cc.Class({ 
extends: cc.Component,

// start 会在 onLoad 之后执行,所以这时 Global 已经初始化过了
start: function () {
    var text = 'Back';
    Global.backLabel.string = text;
}

});

相关文章推荐

cURL安装--Cocos Creator项目使用 VS Code 激活脚本编译

Cocos Creator是Cocos的一款新的游戏开发软件,它是以内容创作为核心的游戏开发工具,在 Cocos2d-x 基础上实现了彻底脚本化、组件化和数据驱动等特点。而要使得Cocos Creat...

cocos creator从零开始做酷跑小游戏 | 背景轮播

在cocoscreator中新建一个hello world,然后把所需要的资源放入Texture文件夹,将背景以及地板拖入层级管理器 按照箭头指示的方式拖入即可在场景编辑器中预览并且编辑,我们需...

QT creator 工具的介绍 qt学习笔记第二章

环境已经搭建完之后,我们开始进入QT creator的使用,在用之前,我先简单的介绍一下,这个工具的各个模块的功能。其实就是大概说一下,我所了解的,我就用了这么3,4天,还有很多功能,大家自己去挖掘吧...

手动给Qt creator添加工具链和编译器

手动给Qt creator添加工具链和编译器 如果你的编译器QT creator没有自动识别可以手机添加 win7: C:\Users\用户名\AppData\Roaming\QtProject t...
  • gogcc
  • gogcc
  • 2013-11-24 19:02
  • 2911

剧情插件Cutscene Creator uSequencer 1.3.7.1使用说明一

说明:以下都是本人个人见解,如有错误请自行进行纠正  一、版本及功能 这是一个编辑复杂剧情动画的插件,通常完整的剧情包括:镜头切换、各种动画、炫丽特效、悦耳的声音、旁白字幕、交互UI等。一般如果剧情只...

Qt Creator 工程文件详解

Qt Pro 文件 1.       注释 从"#"开始,一直到这一行结束. 2.       LANGUAGE 语言,默认C++ ...

QT Creator 图文详细安装部署教程(含三种方式)

最近接触到图形化GUI编程,尝试使用QT跨平台语言去编写,但是进行QT的IDE部署时候,遇到了不少问题,网上搜索到的教程普遍比较旧了,因此写一篇总结,供大家参考。主要安装的系统是Linux,Windo...

Cocos Creator 实现摩天轮效果

第一次写博客 导致紧张直接贴代码cc.Class({ extends: cc.Component, properties: { selecNode: { ...

Qt Creator 调试配置

在Linux下写Qt程序有几个月了,一直使用的是vim进行代码的编写。最近,由于涉及到算法的调试,很是痛苦,因为不会在终端使用GDB,所以都是在Windows下进行算法调试。麻烦的很。也是一时没转过弯...

[图]ubuntu下安装Qt环境及Qt Creator开发工具

[图]ubuntu下安装Qt环境及Qt Creator开发工具感谢 蜗牛 投递 于09-10-13 被阅读 2612 次 评论 0 条 【有奖问答活动2011-4-1 ~ 4-18】开源人把握机会 始...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)