cocos2d html5 筆記5 事件

2022-09-16 17:39:27 字數 1683 閱讀 7748

在cocos2d裡面,通過node的方式,將整個場景以及裡面的object給組織起來,這樣很容易畫了,從root node開始遍歷,把整棵樹畫出來就是了. 剩下就是animation,timer, 還有mouse, touch,keyboard的 事件的處理。在cocos2d裡面提供了三個模組來管理這些,schedule負責timer和 animation的驅動,action則負責改變物件的引數實現一些動畫效果。還有event dispatcher負責事件的分發.

cocos2d裡面的scheduler用於管理時間的排程(timeout的**),同時這個schedule也驅動著整個遊戲,讓遊戲能夠跑動起來.

.run

-->

setinterval

(director

.mainloop

,animationinterval

)director

.mainloop

-->

director

.drawscrene

-->

director

.runningscrene

.vist

()在遊戲裡面除了要不斷的更新畫面以外,還要更新遊戲中的一些資料和狀態(比如遊戲裡面遊戲主題位置,場景的滾動之類的),還有一些動畫效果,也要 定時的更新物體的的一些引數,好讓物體動起來。

所以cocos2d裡面就提供了schedule來管理time的排程, 在drawscene的每裡面,也就是遊戲的每一幀裡面都會呼叫scheduler 的update。

//function in class director

drawscene:

function

()

感覺最常用的是schedule和scheduleupdate, sheduleupdate這個會在每一幀去**node的update函式。

action用於實現一些動畫效果。所謂的的動畫效果就是改變node的一些引數。 action的基類物件裡面有target,和tag, tag用於便於actionmanager管理action, 然後target就指向要需要改變的物件.

cc

.action=cc

.class

.extend

(/**

@lendscc.

action# */

在node裡面還提供了action的其他函式, stopaction, stopallaction, stopactionbytag, getactionbytag, 這些也都是對actionmanager的相應函式的封裝。

在cocos2d裡面的touch, mouse等事件的處理還是很清晰的。以mouse 為例

system

event

-->

mousedispatchter

-->

mousedelegate

如果要處理mouse事件的話,首先實現mouseeventdelegate這個介面,然後在呼叫mousedispahter的addmousedelegate方法將自己加進去。 在mousedispatcher收到系統事件後,它會遍歷所有註冊的delegate,然後去呼叫相應的方法.

具體的例子可以看cclayer, cclayer在onenter的時候,把自己註冊到mousedispahter裡面,然後在onexit的時候取消註冊

cocos2d html5教程之重要概念

學習cocos2d html5的朋友注意了,有一些比較概念性的東西需要大家去學習。1,導演 ccdirector 在cocos2d html5引擎中,導演是遊戲的領袖,導演運籌帷幄所有的場景 布景 精靈等。2,攝像機 cccamera 細到每個節點都需要攝像機,例如節點發生放大 縮小 旋轉等變化的時...

Cocos2d html5遊戲開發,常用工具集合

編輯器ide webstorm windows,mac cocos2d html5官方團隊在用,非常優秀的工具,請大家支援正版 動畫編輯器 animation editor spritehelper 關卡編輯器 level editor levelhelper 位圖字型工具bitmap font t...

5 學習html5筆記

background red url i.png no repeat center 0 background attachment 當元素大小小於背靜,只顯示一部分,應用精靈圖 邊框 border border width 2px 3px 4px 1px border style border to...