cocos2dx 源碼學習1 文件架構


cocos2dx

1.cocos2d-X 節點(CCCamera.h.)API
CCCamera.h 簡單來將就是視角(比如你看到了一棟房子,你站在不同的角度看到的房子是不一樣的,他就相當於你的眼睛所處的位置,他對於你創建 3d 效果是很有用的)
2.COcos2d-X 節點(CCConfiguration.h)API CCConfiguration可以用來存儲配置信息,並通過 鍵/值 的對應關係來獲取
3.cocos2d-X 導演類(Director.h)API 導演類,創建一個主窗口來管理所有的場景,(通常一個遊戲裏面只有一個導演)
3.1獲取當前正在運行的場景、獲取每秒幀數、是否要切換場景、獲取視圖尺寸、切換/停止 場景、清楚緩存、設置配置信息
4.COcos2d-X 節點(ccFPSImages)API 沒有實質性的內容,僅僅定義了兩個變量而已,這裏就不再列出了 5.COcos2d-X 節點(CCScheduler.h)API 這是一個輕量級的定時期,但是,你不可以使用 timer 來代替。它是 timer 的擴展,有許多地方比 timer 更方便

action

1.cocos2d-X 節點(CCAction.h)API

動作必須依賴於 CCNode 的子類才能發揮作用,

1. 1.CCAction 的子類 FiniteTimeAction 可以做瞬時動作和延時動作
1.2.CCAction 的子類 Speed 可以模擬慢動作,快進動作
1.3.CCAction 的子類 Follow Action 執行往後緊隨其後的節點cocos2d-x節點(CCActionCamera.h)API
Camera 助手類,設置camera 在球面座標系中的運動範圍

2.cocos2d-x節點(CCActionCamera.h)API

Camera 助手類,設置camera在球面座標系中的運動範圍
3.cocos2d-x節點(CCActionCatmullRom.h)API

CatmullRom(卡特莫爾羅)action
4.cocos2d-x節點(CCActionEase.h)API

放緩(Easing)action 相關的類
5.cocos2d-x節點(CCActionGrid.h)API

各種網格 action 效果
6.cocos2d-x節點(CCActionGrid3D.h)API

透視、震動、水波、波紋....3D效果
7.cocos2d-x節點(CCActionInstant.h)API

action 的顯示、隱藏、翻轉、定位
8.cocos2d-x節點(CCActionInterval.h)API

有時間間隔的 action,使用動畫、閃爍、重複次數、按次序 創建 action,貝塞爾曲線移動
9.cocos2d-X 節點(CCActionManager.h)API

ActionManager 是一個管理所有 actions 的單例.
正常情況下你不直接使用這個單例,99% 的情況是你希望使用這個節點的接口,
1.但是有一些情況你或許需要使用這個單例
你希望你的 action 運行在不同的不同的節點
你希望 pause / resume actions



10.cocos2d-x節點(CCActionPageTurn3D)API

在屏幕的右下角模擬翻頁
11.cocos2d-x節點(CCActionProgressTimer.h)API

進度條
12.cocos2d-x節點(CCActionTiledGrid.h)API

拆分、淡出、波形、震動 action
13.cocos2d-x節點(CCActionTween.h)API

補間動畫

base_nodes

1.COCos2d-X 節點(CCAtlasNode.h)API AtlasNode 是 Node 的子類,實現了 RGBAProtocol 、 TextureProtocol 協議
節點的所有功能都有效,再加上以下功能:
- opacity and RGB colors //不透明度和RGB顏色
2.COcos2d-X 節點(CCGLBufferedNode)API 從 GL的緩衝區加載數據 3.cocos2d-x節點(CCNode.h)API 這個類是一個基礎類,最常用的 Node 有: Scene, Layer, Sprite, Menu
1.1圖形getter、setter 屬性 (z 順序、OpenGL 頂點、位置、縮放、旋轉、傾斜角、錨點、尺寸、是否可見......)
1.2children 和 parent 之間的關係(添加/刪除 children、爲children 添加識別碼、獲取 children 總數、獲取 children 的parent......)
1.3設置對象效果、爲對象設置 schedule、各種座標的相互轉換、添加移除組件

cocoa

1.cocos2d-x節點(CCAffineTransform.h)API
仿射變換方法的定義
2.cocos2d-x節點(CCArray.h)API
這個類非常常用,可以存儲任何對象,它可以模擬 C 的指針,
3.cocos2d-x節點(CCAutoreleasePool.h)API
如果你希望使用自動釋放池,那麼你就可以參考他了
4.cocos2d-x節點(CCBool.h)API
boolean 簡單的覆蓋了一些方法沒有太多內容
5.cocos2d-x節點(CCData.h)API
Data 簡單的覆蓋了一些方法沒有太多內容
6.cocos2d-x節點(CCDataVisitor.h)API
根據你的多態對象類型幫助你執行動作
7.cocos2d-X 節點(CCDictionary)API
使用它可以保存一些數據,他和 java 裏面的 hashmap 對象類似,通過 鍵/值 對來存儲索引對象,它的關鍵字(key) 可以是 String/Integer 類型
8.cocos2d-x節點(CCDouble.h)API
double 簡單的覆蓋了一些方法沒有太多內容
9.cocos2d-x節點(CCFloat.h)API
float 簡單的覆蓋了一些方法沒有太多內容
10.cocos2d-x節點(CCGeometry.h)API
這個類主要是講點和點之間的關係、線和線之間的關係、點和座標軸之間的關係,這個類涉及了許多數學的知識,另外有一個類似的類,參考(///cocos2d-x-3.0alpha0/cocos2dx/include/CCDeprecated.h)
11.cocos2d-x節點(CCInteger.h)API
integer 簡單的覆蓋了一些方法沒有太多內容
12.cocos2d-x節點(CCNS.h)API
返回給定字符串的結構樣式
13.cocos2d-x節點(CCObject.h)API
對象引用計數器的使用和比較
14.cocos2d-x節點( CCSet.h)API
set 的基本使用
15.cocos2d-x節點(CCString.h)API
CCString 很強大,各種數據類型的轉換(把字符串轉化爲 double、float、integer......)。字符串的分割和比較

draw_nodes

1.cocos2d-x節點(CCDrawingPrimitives.h)API
繪製基本圖元(矩形,多邊形,點線)
2.cocos2d-x節點(CCDrawNode.h)API
// 在同一個批處理節點裏面繪製 點、線段、多邊形

effects

1.cocos2d-x節點(CCGrabber.h)API
FBO 類抓取屏幕上的內容
2.cocos2d-x節點(CCGrid.h)API
基礎類,Grid 的各種狀態

event_dispatcher

1.cocos2d-x節點(CCEventAcceleration.h)API
促進事件
2.cocos2d-x節點(CCEventCustom.h)API
簡單的覆蓋了一些方法沒有太多內容
3.cocos2d-x節點(CCEventKeyboard.h)API
鍵盤事件
4.cocos2d-x節點(CCEventListenerAcceleration.h)API
監聽加速
5.cocos2d-x節點(CCEventListenerCustom.h)API
自定義監聽事件
6.cocos2d-x節點(CCEventListenerKeyboard.h)API
鍵盤事件監聽
7.cocos2d-x節點(CCEventListenerTouch.h)API
觸摸事件監聽
8.cocos2d-x節點(CCEventTouch.h)API
觸摸事件
9.cocos2d-x節點(CCEvent.h)API
一個基類,事件狀態的判斷
10.cocos2d-x節點(CCEventDispatcher.h)API
事件調度
11.cocos2d-x節點(CCEventListener.h)API 監聽器的基類
12.cocos2d-X 節點(CCTouch.h)API
一般把觸點信息放入 CCTouch 類裏面,CCTouch 類封裝了觸摸點的信息,包括觸摸點的橫縱座標值,

include

1.cocos2d-x節點(ccConfig.h)API
//一些配置項可以很方便的調試
2.cocos2d-x節點(CCEventType.h)API
定義應用進入 前臺/後臺 的通知類型
3.cocos2d-x節點(ccMacros.h)API
一些預處理宏
4.cocos2d-x節點(CCProtocols.h)API
投影協議、標籤接口、texture協議、RGBA協議、混合協議;涉及了透明度,透明度/顏色 在 children 和parent 之間的傳遞
5.cocos2d-x節點(ccTypes.h)API
字體屬性、texture屬性、RGB組成......
6.cocos2d-x節點(cocos2d.h)API
cocosd 所包含的類文件
7.cocos2d-x節點(CCDeprecated.h)API
這個類主要是講點和點之間的關係、線和線之間的關係,另外有一個相似的類,(cocos2d-x-3.0alpha0cocos2dxcocoaCCGeometry.h)

label_nodes

NewLabel_Experimental 新的 label 實驗,沒有太多的註釋,如果有需要自己閱讀api
1.cocos2d-X 節點(CCLabelAtlas.h)API
LabelAtlas 是 AtlasNode 的子類.
他的速度很快可以替代標籤.
LabelAtlas 相對於 Label:
- LabelAtlas 比 Label 要快
- LabelAtlas characters 有一個固定的寬度和高度 //字符
- LabelAtlas characters 可以是任何你想要的,因爲它們是從一個文件演變過來的
2.cocos2d-X 節點(CCLabelBMFont.h)API
CCLabelBMFont.h 是文字渲染標籤類,CCLabelBMFont 類中的每個字都是一個 Sprite 類,這意味着每個字都可以自己的旋轉等其它動作
3.cocos2d-X 節點(CCLabelTTF.h)API
abelTTF 是 TextureNode 的子類,它可以渲染 labels 的標籤(label上面顯示的文字)。 TextureNode 的所有功能在 LabelTTF 裏面都是有效的。 LabelTTF 對象非常緩慢. 可以考慮使用 LabelAtlas 、 LabelBMFont 代替.

layers_scenes_transitions_nodes

1.cocos2d-x節點(CCLayer.h)API

Layer 是 Node 的子類,它實現 TouchEventsDelegate 協議.節點的所有功能都有效,加上以下新的特點:它可以接收手機的觸摸、它可以接收輸入加速度

1.1啓用/禁用 觸摸事件/傳感器事件/小鍵盤事件
1.2 LayerRGBA、LayerColor、LayerGradient、MultipleLayer 是 Layer 的子類,它們擴展了 layer 擁有layer 的所有功能

2.cocos2d-x節點(CCScene.h)API
把 Scene 作爲所有 node 的parent 是一個很好的做法,基本的 Scene 方法
3.cocos2d-x節點(CCTransition.h)API
各種場景切換過渡效果
4.cocos2d-x節點(CCTransitionPageTurn.h)API
scene 過渡
5.cocos2d-x節點(CCTransitionProgress.h)API
放射狀過渡到下一個場景

menu_nodes

1.cocos2d-x節點(CCMenu.h)API 創建菜單,添加 items、設置 items 的對其方式
2.cocos2d-x節點(CCMenuItem.h)API
爲菜單項創建各種類型的 item
1.啓用/禁用 item,是否選擇 item
2.MenuItemLabel、MenuItemAtlasFont、MenuItemFont、MenuItemSprite、MenuItemImage、MenuItemToggle 和 CCMenuItem 相關的類

misc_nodes

1.cocos2d-x節點(CCClippingNode.h)API
裁剪節點
2.cocos2d-x節點(CCMotionStreak.h)API
在遊戲的實現過程中,有時會需要在某個 遊戲對象上的運動軌跡上實現漸隱效果。這種 感覺就好像是類似飛機拉線的拖尾巴,在視覺 上感覺很好,比如子彈的運動軌跡等,如果不 藉助引擎的幫助,這種效果往往需要通過大量 的圖片來實現。而 Cocos2D-x 提供了一種內置 的拖動漸隱效果類 CCMotionStreak 來幫助我們 實現這個效果。
3.cocos2d-x節點(CCProgressTimer.h)API
進度條定時器
4.cocos2d-x節點(CCRenderTexture.h)API
渲染紋理,把渲染 texture 存儲爲 PNG或JPG格式,捕獲 android 設備的 come to background/foreground 消息 ,來 存儲/恢復 緩存對象

particle_nodes

1.cocos2d-x節點(CCParticleBatchNode.h)API
批量繪製粒子
2.cocos2d-x節點(CCParticleExamples.h)API
許多個粒子系統的 examples ,下雪,太陽,火焰,煙霧,流行,星系......
3.cocos2d-x節點(CCParticleSystem.h)API
//粒子系統的基類,重力模式、半徑模式 備註:變動 是,每一次 增減/減少 的固定值
4.cocos2d-x節點(CCParticleSystemQuad.h)API
ParticleSystemQuad 是 ParticleSystem 的子類,它包含 ParticleSystem 的所有功能, 增加了,縮放、旋轉、批處理
5.cocos2d-x節點(firePngData.h)API
這個類只有一個很難懂的char數組

physics

Box2D、chipmunk只是包含了一些構造函數,析構函數,沒有太多有價值的信息,感興趣的人,可以自己取看看

1.cocos2d-x節點(CCPhysicsSetting.h)API

都是一些物理引擎設置的定義
2.cocos2d-x節點(CCPhysicsBody.h)API
物體之間的作用力,把 shape 鏈接到 body
3.cocos2d-x節點(CCPhysicsContact.h)API
兩個物體接觸的監聽和處理
4.cocos2d-x節點(CCPhysicsShape.h)API
模擬現實世界的形狀,圓形,鍊形,段狀,對變形.....
5.cocos2d-x節點(CCPhysicsJoint.h)API
各種無力物理聯合,別針、限制、聯動、彈簧....等聯合
6.cocos2d-x節點(CCPhysicsWorld.h)API
添加移除物理世界關聯

platform

apple、mac、third_party、ios 需要的話自己看吧
1.cocos2d-x節點(CCApplicationProtocol.h)API
應用程序的初始化,以及加載語言文件
2.cocos2d-x節點(CCCommon.h)API
調試的日誌信息
3.cocos2d-x節點(CCDevice.h)API
設備的 DPI 啓用/禁用 加速度傳感器,設置加速的時間間隔
4.cocos2d-x節點(CCEGLViewProtocol.h)API
應用全屏參數,拉伸全屏,裁剪全屏,有黑色邊框全屏
5.cocos2d-x節點(CCFileUtils.h)API
輔助類來處理文件操作,各種平臺文件的搜索
6.cocos2d-x節點(CCImage.h)API
加載圖片,儲存圖片,例如,從 stream buffer 裏面加載圖片,從指定路徑加載圖片,把文本初始化爲圖片
7.cocos2d-x節點(CCImageCommon_cpp.h)API
初始化各種類型的圖片,儲存圖片
8.cocos2d-x節點(CCPlatformConfig.h)API
爲每一個平臺,配置 cocos2d-x 項目
9.cocos2d-x節點(CCPlatformMacros.h)API
定義一些特定於平臺的宏
10.cocos2d-x節點(CCSAXParser.h)API
SAX解析器
11.cocos2d-x節點(CCThread.h)API
在 ios 設備上創建線程釋放池對象

script_support

1.cocos2d-x節點(CCScriptSupport.h)API
調度器腳本處理程序入口、觸摸腳本處理程序入口、腳本處理程序入口

shaders

1.cocos2d-x節點(CCGLProgram.h)API
頂點着色器 相關操作
2.cocos2d-x節點(ccGLStateCache.h)API
綁定/刪除 texure ,啓用/禁用 gl功能
3.cocos2d-x節點(CCShaderCache.h)API
獲取/重新加載 ShaderCache 實例

sprite_nodes m

1.cocos2d-x節點(CCAnimation.h)API
創建幀動畫
2.cocos2d-x節點(CCAnimationCache.h)API 管理 Animations 的 Singleton(單例).
他把 animations 存儲到 cache 裏. 如果你希望在 cache 裏面存儲你的 animations(cocos2d 把所有的動畫統稱爲 animatiosns),你可以使用這個類
3.cocos2d-x節點(CCSprite.h)API Sprite 是一個 2d 圖片
1.更新 Sprite 的 texture、設置 sprite 的批處理節點、設置 sprite 在 TextureAtlas 裏面的索引…
4.cocos2d-x節點(CCSpriteBatchNode.h)API SpriteBatchNode 就是一個批處理節點:如果它包含孩子,他會一次性繪製所有孩子(通常叫做批繪製”).如果要繪製的對象較多,使用 SpriteBatchNode 可以提升遊戲性能
5.cocos2d-x節點(CCSpriteFrame.h)API 和 sprite 類似
6.cocos2d-x節點(CCSpriteFrameCache.h)API
從 .list/字典 文件 初始化/刪除 sprite Frame

support

component、data_support、image_support、tinyxml2、user_default、zip_support 需要的話自己看吧
1.cocos2d-x節點(base64.h)API
解碼/編碼 base64的內存
2.cocos2d-x節點(CCNotificationCenter.h)API
通知中心管理通知
3.cocos2d-x節點(CCProfiling.h)API
cocos2d內置分析器
4.cocos2d-x節點(ccUTF8.h)API
UTF-16 轉換爲 UTF-8,統計 寫入/讀取 的字節數
5.cocos2d-x節點(ccUtils.h)API
獲取下一個二進制數據
6.cocos2d-x節點(CCVertex.h)API
頂點
7.cocos2d-x節點(TransformUtils.h)API
改造後的 util

text_input_node m

1.cocos2d-x節點(CCIMEDelegate.h)API 在遊戲中,有時需要用戶輸入用戶名,密碼等,這時需要調用虛擬鍵盤來實現。在 Cocos2D-x中,通過使用繼承輸入法代理類 CCIMEDelegate 和其字體標籤類 CCLableTTF的字體的輸入框類 CCTextFieldTTF 來實現這一功能
2.cocos2d-x節點(CCIMEDispatcher.h)API
IME調度
3.cocos2d-x節點(CCTextFieldTTF.h)API
在遊戲中,有時需要用戶輸入用戶名,密碼等,這時需要調用虛擬鍵盤來實現。在 Cocos2D-x中,通過使用繼承輸入法代理類 CCIMEDelegate 和其字體標籤類 CCLableTTF的字體的輸入框類 CCTextFieldTTF 來實現這一功能

textures

1.cocos2d-x節點(CCTexture2D.h)API 貼圖類 CCTexture2D 是關於 OpenGL 的概念。在 OpenGL 中稱圖片爲貼圖,在 Cocos2D-x 中 CCTexture2D 就是圖片對象的意思,可以通過它創建精靈等對象 .CCTexture2D 類是精靈類和其相關類的基礎。以下會看到很多類都可以用 CCTexture2D類定義。
2.cocos2d-x節點(CCTextureAtlas.h)API
一個類實現了Texture Atlas. 對 Quads 進行操作
3.cocos2d-x節點(CCTextureCache.h)API
在 cache 裏面存取 texture

tilemap_parallax_nodes

1.cocos2d-x節點(CCParallaxNode.h)API
Parallax(視差) 類似滾動條
2.cocos2d-x節點(CCTileMapAtlas.h)API 可以使用 CCTileMapAtlas 創建地圖
3.cocos2d-x節點(CCTMXLayer.h)API 他是 SpriteBatchNode 的子類.默認情況下 tiles (瓷磚)使用TextureAtlas 呈現。
如果你在運行時修改了 tile ,tile 將變成一個 sprite
4.cocos2d-x節點(CCTMXObjectGroup.h)API 地圖精靈組類,CCTMXObjectGroup 用於代表地圖中的精靈組
5.cocos2d-x節點(CCTMXTiledMap.h)API
和 CCTMXXMLParser(//cocos2d-x-3.0alpha0/cocos2dx/tilemap_parallax_nodes/CCTMXXMLParser.h) 類差不多都是解析地圖
6.cocos2d-x節點(CCTMXXMLParser.h)API
TMX/XML 地圖解析 和CCTMXTiledMap 差不多(//cocos2d-x-3.0alpha0/cocos2dx/tilemap_parallax_nodes/CCTMXTiledMap.h)
發佈了23 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章