Creator學(xué)習(xí)筆記1


1.除了方法运沦, 其他東西都要扔到properties里面了, 并且要給出屬性的默認(rèn)值或者屬性的存取的方法

1) 首先呢? 是繼承自組件 (extends: cc.Component)

2)除了開(kāi)放的extends接口, properties接口,

還有常用的onLoad接口和update接口

※onLoad會(huì)在組件加載的時(shí)候調(diào)用

※update會(huì)在每幀刷新的時(shí)候調(diào)用, 理論上是一秒執(zhí)行60次update??得到的參數(shù)是與上次刷新的時(shí)間間隔

3)我們有了一個(gè)想法,我想做一個(gè)游戲,很棒的游戲

ok蓬坡,我們要用CCC做,

那我們究竟怎么做呢

很簡(jiǎn)單卓舵,三步

1.把你所設(shè)想的游戲界面都布置好弊仪,有幾個(gè)場(chǎng)景布置幾個(gè)場(chǎng)景畔柔,不想看到的先在屬性檢查器把a(bǔ)ctive關(guān)掉氯夷,想動(dòng)態(tài)生成的就扔到資源管理器當(dāng)prefab

2.編寫游戲的邏輯,寫什么邏輯呢靶擦??jī)蓚€(gè)字腮考,就是監(jiān)聽(tīng)雇毫,各種聽(tīng),如果是邏輯的入口踩蔚,就聽(tīng)系統(tǒng)事件棚放,如果不是,就聽(tīng)自定義事件馅闽,然后該干嘛干嘛飘蚯,用到的資源如果在資源管理器就require或者load,在層級(jí)管理器的就在properties開(kāi)接口

3.關(guān)聯(lián)界面和邏輯福也,在屬性檢查器把整個(gè)監(jiān)聽(tīng)的邏輯關(guān)系網(wǎng)織起來(lái)

以下引用Himi

大致內(nèi)容如下:

cc 屬性介紹

獲取組件的幾種形式

全局變量的訪問(wèn)

模塊之間的訪問(wèn)

在當(dāng)前節(jié)點(diǎn)下添加一個(gè)組件

復(fù)制節(jié)點(diǎn)/或者復(fù)制 prefab

銷毀節(jié)點(diǎn)(銷毀節(jié)點(diǎn)并不會(huì)立刻發(fā)生局骤,而是在當(dāng)前 幀邏輯更新結(jié)束后,統(tǒng)一執(zhí)行)

事件監(jiān)聽(tīng) on 4種形式(包括坐標(biāo)獲缺┐铡)

關(guān)閉監(jiān)聽(tīng)

發(fā)射事件(事件手動(dòng)觸發(fā))

動(dòng)作示例峦甩,類似c2dx api 基本無(wú)變化

計(jì)時(shí)器 (component)schedule (cc.Node 不包含計(jì)時(shí)器相關(guān) API)

url raw資源獲取


cc.Class({

extends: cc.Component,

properties: {

label: {

default: null,

type: cc.Label

},

text: 'Hello, World!',

t_prefab:{

default:null,

type:cc.Prefab

},

t_sprite:{//定義一個(gè)cc的類型,并定義上常用屬性

default:null,

type:cc.SpriteFrame,//類型的定義

// url:cc.Texture2D, //Raw Asset(cc.Texture2D, cc.Font, cc.AudioClip)

visible:true,//屬性檢查器中是否可見(jiàn)

displayName:'himi',//屬性檢查器中屬性的名字

tooltip:"測(cè)試腳本",//屬性檢查器中停留此屬性名稱顯示的提示文字

readonly:false,//屬性檢查器中顯示(readonly)且不可修改[當(dāng)前有bug现喳,設(shè)定只讀也能修改]

serializable:true,//設(shè)置false就是臨時(shí)變量

editorOnly:false//導(dǎo)出項(xiàng)目前剔除此屬性

},

t_url:{

default:null,

url:cc.Texture2D

},

t_count_2:200,//基礎(chǔ)類型

//可以只定義 get 方法凯傲,這樣相當(dāng)于一份 readonly 的屬性。[當(dāng)前有bug嗦篱,只設(shè)定get也能修改]

t_getSet:{

default:12,

get:function(){return this.t_getSet},//get

set:function(value){this.t_getSet =value;}//set

},

t_array:{//定義一個(gè)數(shù)組

default:[],

type:[cc.Sprite]

}

},

// use this for initialization

onLoad: function () {

//--->>> 獲取組件的幾種形式:

//1. 通過(guò)屬性檢查器被賦值的label組件冰单,直接拿到得到實(shí)例

//2. 通過(guò)屬性檢查器被賦值的label組件所在的node節(jié)點(diǎn),然后通過(guò)getComponent獲取

// this.label.string = this.text;

//3. 獲取當(dāng)前this(node)節(jié)點(diǎn)上的label組件

// var _label = this.getComponent(cc.Label);

//4. 先獲取目標(biāo)組件所在的節(jié)點(diǎn)灸促,然后通過(guò)getComponent獲取目標(biāo)組件

var _label = cc.find("Canvas/label").getComponent(cc.Label);

//5.也可以如下形式【注意此種方式诫欠,目前有BUG,無(wú)法正常使用 (0.7.1) 】

// var _label = cc.find("Canvas/label");

console.log(_label.string);

console.log(this.t_getSet);

//--->>>全局變量的訪問(wèn)

/* 任意腳本中定義如下:【注意不要有var哦】

t_global = {

tw:100,

th:200

};

*/

t_global.th = 2000;

console.log(t_global.th);

//--->>>模塊之間的訪問(wèn)

/*任意腳本中定義如下 【注意關(guān)鍵字是module.exports】

module.exports= {

tme_pa1:"100",

tme_pa2:333221

};

*/

//--->>>用 require + 文件名(不含路徑) 來(lái)獲取到其他 模塊 的對(duì)象

var tModuleData = require("testJs");

tModuleData.tme_pa2 = 991;

console.log(tModuleData.tme_pa2);

//--->>>在當(dāng)前節(jié)點(diǎn)下添加一個(gè)組件

var mySprite = new cc.Node().addComponent(cc.Sprite);

mySprite.spriteFrame = this.t_sprite;

mySprite.node.parent = this.node;

mySprite.node.setPosition(300,200);

//--->>>復(fù)制節(jié)點(diǎn)/或者復(fù)制 prefab

//復(fù)制節(jié)點(diǎn)

var lLabel = cc.instantiate(this.label);

lLabel.node.parent = this.node;

lLabel.node.setPosition(-200,0);

//復(fù)制prefab

var tPrefab = cc.instantiate(this.t_prefab);

tPrefab.parent = this.node;

tPrefab.setPosition(-210,100);

//--->>>??銷毀節(jié)點(diǎn)(銷毀節(jié)點(diǎn)并不會(huì)立刻發(fā)生浴栽,而是在當(dāng)前 幀邏輯更新結(jié)束后呕诉,統(tǒng)一執(zhí)行)

if (cc.isValid(this.label.node) ) {

console.log("有效存在,進(jìn)行摧毀");

this.label.destroy();

}else{

console.log("已摧毀");

}

//--->>> 事件監(jiān)聽(tīng) on 4種形式

//枚舉類型注冊(cè)

var tFun =function (event){

console.log("touchend event:"+event.touch.getLocation().x +"|"+event.touch.getLocation().y);

};

this.node.on(cc.Node.EventType.TOUCH_END,tFun,this);

//事件名注冊(cè)

// var tFun =function (event){

//?? console.log("touchend event");

// };

// this.node.on("touchend",tFun);

// this.node.on("touchend",function (event){

//?? console.log("touchend event");

// });

// this.node.on("touchend",function (event){

//?? console.log("touchend event");

// },this);

// this.node.on("touchend",function (event){

//?? console.log("touchend event");

// }.bind(this));

//--->>> 一次性的事件監(jiān)聽(tīng) once

// this.node.once("touchend",function (event){

//?? console.log("touchend event");

// });

//--->>> 關(guān)閉監(jiān)聽(tīng)

this.node.off("touchend",tFun,this);

//--->>> 發(fā)射事件(事件手動(dòng)觸發(fā))

this.node.on("tEmitFun",function (event){

console.log("tEmitFun event:"+event.detail.himi+"|"+event.detail.say);

//-->>> 事件中斷,如下函數(shù)阻止事件向當(dāng)前父級(jí)進(jìn)行事件傳遞

// event.stopPropagation();

});

this.node.emit("tEmitFun",{himi:27,say:"hello,cc!"});

//--->>> 動(dòng)作吃度,類似c2dx api 基本無(wú)變化

var mTo = cc.moveBy(1,-100, -200);

var

mAction = cc.repeatForever(cc.sequence(cc.moveBy(1,-100,

-200),mTo.reverse(),cc.delayTime(0.5),cc.callFunc(function(action,data){

console.log("action callback:"+data.himi);

},this,{tx:100,himi:"i'm action callback and bring data"})));

mySprite.node.runAction(mAction);

//暫停動(dòng)作

mySprite.node.stopAction(mAction);

//--->>> 計(jì)時(shí)器 (component)schedule (cc.Node 不包含計(jì)時(shí)器相關(guān) API)

//參數(shù): call funtion/interval/repeat times/delay time

//不延遲,永久重復(fù)

this.schedule(function(){

console.log("schedule log...");

},1);

//不延遲贴硫,有重復(fù)次數(shù)限定

// this.schedule(function(){

//???? console.log("schedule log...");

// },1,2);

//重復(fù)2次椿每,重復(fù)間隔為1秒,延遲1秒進(jìn)行

// this.schedule(function(){

//???? console.log("schedule log...");

// },1,2,1);

//一次性的計(jì)時(shí)器

var mySch =function(){ console.log("schedule Once log..."); }

this.scheduleOnce(mySch);

//取消定時(shí)器

this.unschedule(mySch);

//--->>> url raw資源獲取

var mSf = new cc.Node().addComponent(cc.Sprite);

mSf.spriteFrame = this.t_sprite;

mSf.spriteFrame.setTexture(this.t_url);

mSf.node.setPosition(400,0);

mSf.node.parent = this.node;

mSf.node.setScale(0.5);

//獲得 Raw Asset 的 url

var mUrl = cc.textureCache.addImage(cc.url.raw("himi.png"));

console.log("raw asset url:"+mUrl);

},

// called every frame

update: function (dt) {

// if (cc.isValid(this.label.node) ) {

//???? console.log("有效存在英遭,進(jìn)行摧毀");

// }else{

//???? console.log("已摧毀");

// }

},

});

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末间护,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挖诸,更是在濱河造成了極大的恐慌汁尺,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件多律,死亡現(xiàn)場(chǎng)離奇詭異痴突,居然都是意外死亡搂蜓,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門辽装,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)帮碰,“玉大人,你說(shuō)我怎么就攤上這事拾积⊙惩欤” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拓巧,是天一觀的道長(zhǎng)斯碌。 經(jīng)常有香客問(wèn)我,道長(zhǎng)肛度,這世上最難降的妖魔是什么傻唾? 我笑而不...
    開(kāi)封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮贤斜,結(jié)果婚禮上策吠,老公的妹妹穿的比我還像新娘。我一直安慰自己瘩绒,他們只是感情好猴抹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著锁荔,像睡著了一般蟀给。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阳堕,一...
    開(kāi)封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天跋理,我揣著相機(jī)與錄音,去河邊找鬼恬总。 笑死前普,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的壹堰。 我是一名探鬼主播拭卿,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贱纠!你這毒婦竟也來(lái)了峻厚?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤谆焊,失蹤者是張志新(化名)和其女友劉穎惠桃,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辜王,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年劈狐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片誓禁。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡懈息,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出摹恰,到底是詐尸還是另有隱情辫继,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布俗慈,位于F島的核電站姑宽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏闺阱。R本人自食惡果不足惜炮车,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酣溃。 院中可真熱鬧瘦穆,春花似錦、人聲如沸赊豌。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)碘饼。三九已至熙兔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間艾恼,已是汗流浹背住涉。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钠绍,地道東北人舆声。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像柳爽,于是被迫代替她去往敵國(guó)和親纳寂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象泻拦,但只有一個(gè)實(shí)例,加載時(shí)并不主動(dòng)創(chuàng)建忽媒,需要時(shí)才創(chuàng)建 最常見(jiàn)的單例模式争拐,...
    Obeing閱讀 2,065評(píng)論 1 10
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式架曹。簡(jiǎn)單...
    舟漁行舟閱讀 7,752評(píng)論 2 17
  • 深入響應(yīng)式 追蹤變化: 把普通js對(duì)象傳給Vue實(shí)例的data選項(xiàng)隘冲,Vue將使用Object.defineProp...
    冥冥2017閱讀 4,868評(píng)論 6 16
  • 每個(gè)人對(duì)愛(ài)情的理解不同展辞,對(duì)待感情的態(tài)度也不同,有些人薄情万牺,也有些人癡情罗珍,薄情不提倡,癡情也不效仿脚粟,但總有那么些人對(duì)...
    十二星座的解析閱讀 129評(píng)論 0 0
  • 山圍著水 水繞著山 人含著情 情牽著人 似是人間 還是天堂 在天堂和人間回旋 話中有詩(shī) 詩(shī)中有畫 畫中有你 你中有...
    晴晴的天空閱讀 230評(píng)論 0 0