一 目的
學習,並作爲練習的一個案例
github 地址 https://github.com/baidang201/KungFuChild
教程地址:
http://suool.net/2015/07/30/My-Cocos2d-x-Game-Class-For-JiKeXueYuan/
二 大綱
1 概要
瞭解遊戲設計的大概結構
2 基礎類
《1 工具類實現
《2 英雄類實現
《3 簡單AI怪物實現
3 主菜單和祕籍界面
《1 資源異步加載(圖片紋理 精靈緩存 聲音(要使用線程異步加載)),使用過渡頁達到目的
《2 Menu家族菜單的使用
《3 UserDefault簡單配置文件使用
4 設置和圖鑑界面
《1 ControlSider 用法,滑動條
《2 MenuItemToggle 用法,開關菜單控件
《3 ListView 列表視圖
5 幫助和選關界面
《1 幫助頁面,裁剪頁ClippingNode使用,類似於flash的蒙版,用於實現字幕滾動。
《2 OrbitCamera action 視角按照球面座標軌跡 圍繞屏幕中心進行旋轉
6 主場景界面
《1 ControlButton 按鈕的使用
《2 ProgressTimer 進度條的使用
《3 暫停和繼續,使用了截圖類(RenderTexture),爲了屏蔽觸摸事件到後面的操作按鈕
《4 使用了視差節點類,造成遠景近景層次移動效果(ParallaxNode)
7 主邏輯
《1 遊戲暫停的實現,使用RenderTexture。可用於截屏
《2 遊戲結算的場景實現(遮罩層屏蔽觸摸)
8 打包爲apk
《1 基礎組件(jdk python sdk ndk ant)
《2 cocos命令行打包
《3 eclipse/android studio打包
三 小結
1 異步加載。
紋理,動畫有異步接口,聲音資源只能寫線程預加載(cocos2dx 3.10)
2 Menu家族比較
文字菜單
圖片/精靈菜單
開關菜單
比較特別的是開關菜單項,回調函數在第一個參數位置,大概是爲了實現後面放可變參數吧
MenuItemToggle * MenuItemToggle::createWithCallback(const ccMenuCallback &callback, MenuItem* item, ...)
其他的是
MenuItemSprite * MenuItemSprite::create(Node* normalSprite, Node* selectedSprite, Node* disabledSprite)
3 view家族比較
scroolView,ListView,PageView,TableView
4 windows32平臺(cocos2dx 3.10),調節背景音樂 音效的接口居然無效,看了例子改寫cocos2d\cocos\audio\win32 如下3個文件,使用windowsAPI mciSendCommand實現
MciPlayer.cpp
MciPlayer.h
SimpleAudioEngine.cpp
5 改進方向
《1 使用有限狀態機改寫本遊戲項目
《2 爲怪物添加更強大的AI,改進現有的碰撞檢測
《3 怪物的產生使用讀取配置文件的方式
《4 將遊戲GameLayer各個層分開實現,降低程序的耦合性。
《5 組合按鍵,生成新的技能系統