本站文章均為[?李華明Himi?](http://www.himigame.com/about-himi)原創,轉載務必在明顯處注明:
轉載自[【黑米GameDev街區】](http://www.himigame.com/)?原文鏈接:?[http://www.himigame.com/iphone-cocos2dx/911.html](http://www.himigame.com/iphone-cocos2dx/911.html "【Cocoa(mac)")
[? 點擊訂閱 ?](http://list.qq.com/cgi-bin/qf_invite?id=acfc24e272cc4a26debf3b3866edb626a9ea3fc80fd8893c)?本博客最新動態!及時將最新博文通知您!
又要說好久沒更新博文啦,咳咳….
其實博文中對于游戲開發,從j2me-android-ios ,從Client端-Server端 ?,從jbox-cocos2d-cocos2dx 基本都囊括了,當然還有一些iap 防破解、GCC、架構等等,以及現在編輯器開發的博文,基本上貌似游戲開發不缺少什么了 = =..。當然后期應該會陸續上一些Unity3D博文吧。
到此,可以說Himi一直以來一個人能做個手機網游的目標基本實現了,廢話不再這里多說了,等有時間把自己的歷程更新下,在[Himi淺談4年游戲開發de自學歷程!(僅供參考)【2012年5月21號更新】](http://www.himigame.com/himistudy/382.html)?中再詳細說吧,本節為一些做游戲且對編輯器不是很熟悉的童鞋簡單介紹下動作編輯器的制作詳細步驟,僅供參考啦;
努力分享、共同進步!
首先對于游戲編輯器,這里概述下,在游戲開發中呢 大家難免會接觸到一些編輯器,例如常見的“動作編輯器(動編)”、“地圖編輯器”、“腳本編輯器”、“粒子編輯器”、“物理編輯器”、“場景編輯器”、“任務編輯器”等等等等..其實這些編輯器的初衷都一樣,縮短游戲開發周期,簡化開發工作復雜度等,將程序工作分離出來;
這里舉例“動作編輯器”,動作編輯器的作用主要有以下幾點:
1.減少游戲內存 (圖片復用率提高)
2.便于替換游戲角色動作圖片資源(比如制作Avatar系統等)
3.工作分離
對于工作分離,比如,動作編輯器有了之后,至于游戲中每個角色的動作啦,特效啦,攻擊距離啦,碰撞區域啦,幀間隔啦等等都可以直接交給非程序部門負責,程序部門直接負責拿來編輯器生成的文件進行解析操作使用即可啦;
大概敘述了一下,那么下面Himi來講解基于Mac os 開發 Cocos2dx動編的全流程;
步驟如下: ?(這里Himi分為兩個大步驟,1.切片視圖 ? ?動畫視圖)
裁切區域,如下圖:
?[](http://www.himigame.com/wp-content/uploads/2012/06/15.png)
?
1.左側“資源目錄” 右側“切片操作區”以及最下方的“切片展示區” Himi都使用的NSScrollView,原因如下:
資源目錄由于你無法預知用戶加載進來的資源目錄圖片數量,所以需要一個可滾動的視圖來比較合適;
而其他兩個是因為Himi加入了鼠標滾軸放大視圖的功能;
接收鼠標滾軸事件分為兩步:
1)讓當前的View重寫接收事件函數:
~~~
-(BOOL)acceptsFirstResponder{
return YES;
}
~~~
2)重寫鼠標滾軸事件:
~~~
- (void)scrollWheel:(NSEvent *)theEvent{
//鼠標滾軸事件
}
~~~
一般情況下在蘋果系統下的坐標系都是向右是X++,向上Y++,但是有的童鞋習慣與向下Y++吧,所以這里Himi給出反轉坐標系的方法:如下:重寫函數:
~~~
-(BOOL)isFlipped{
return YES;
}
~~~
話題轉回來,對于切片操作區域呢,資源目錄下的每張圖片都應該對應著一個數組,用于存放切片的Rect,這個很容易想到不解釋了;
至于展示區其實就是對應將每個圖片對應的數組Rect都切出新圖成為新切片放置 “切片展示區”即可;
可能大家有1個疑惑:如何顯示一個界面讓用戶導入資源呢?
OK,其實很eazy,使用?NSOpenPanel 這個類即可實現啦。很簡單給與提示即可。
當然啦 為了方便大家 給出一段使用代碼吧:
~~~
NSOpenPanel *oPanel = [NSOpenPanel openPanel];
[oPanel setCanChooseDirectories:YES]; //可以打開目錄
[oPanel setCanChooseFiles:NO]; //不能打開文件(我需要處理一個目錄內的所有文件)
[oPanel setTitle:@"選擇動編操作的文件夾"];
if ([oPanel runModal] == NSOKButton) { //如果用戶點OK
}
~~~
這樣會使用了吧 = =。再不會的請面壁謝謝;
效果如下:
[](http://www.himigame.com/wp-content/uploads/2012/06/23.png)
需要主要一點,為了方便美術等進行裁切時候有誤差等細節調整,那么Himi在“切片操作視圖”每個切片矩形的右下角有個“小矩形”,拖動這個小矩形即可改變其大小啦 ,很方便的啦 嘿嘿
OK,切片視圖貌似沒有太多的東西,我們下面來看主要的“動作視圖”:
[](http://www.himigame.com/wp-content/uploads/2012/06/16.png)
?
基本上直接看上面這張圖已經講解的很清晰了 。。
這里說幾個技術點:
1.視圖沒說的,最下方的還是切片視圖,這里的視圖都是由“切片視圖”切好的直接拿過來使用的。以及上方的View都是用的NSScrollView進行使用的,Himi說過了,都是因為要做成右鍵縮放功能,你懂的。
2.動作序列,幀序列,以及切片序列都是使用的NSTableView 來做的;很eazy 的;
其實說實話,Himi做這個編輯器大部門時間都花在這里了。其實功能不少,都是隱藏各種右鍵,還有呢就是與“切片視圖”的數據一定要對應并且大家一定要做的時候理清思路和架構,以及代碼,類的設計要考慮清楚,否則說實話…不然會各種暈。
3.關于右側的角度、幀率、坐標、縮放比例等就不說了,很簡單的NSLable和NSTextField啦。
OK,最后,我們看下最后一個視圖,這個視圖貌似隱藏的比較深,是個動作播放視圖的觀察視圖。通過“動畫視圖的”的播放動作觸發顯示的。
如下圖:
[](http://www.himigame.com/wp-content/uploads/2012/06/17.png)
大家要注意,這個播放動作展示的視圖,Himi建議單獨拿出來一個NSWindow來做,這樣兩者可以同時觀察和修改!
這個動作查看的視圖可以自動更新你在“動畫視圖”的調整;這個比較海皮;
而后,重點就是你數據的存儲和編譯出你cocos2dx或者其他平臺的文件即可。這里還是要提醒大家!
c++屬于小端數,Java屬于大端數,這個千萬別忘記了,否則你數據怎么都不對 哈哈。
好啦,再往后咱們就設計下我們這個編輯器的“ About ”,如下效果:
[](http://www.himigame.com/wp-content/uploads/2012/06/19-copy.png)[
](http://www.himigame.com/wp-content/uploads/2012/06/18.png)
設計這個相當容易,我們只需要修改一個地方即可:
找你項目下的 Supporting Files 文件夾下的Credits.rtf文件,雙擊打開編輯好保存,就OK啦。!
[](http://www.himigame.com/wp-content/uploads/2012/06/110.png)
?
最后的最后呢,就是打包的啦。這里不上圖了。(Himi Xcode Version:4.3.2)
找到Xcode菜單的Product -> Archive ,?然后在Organizer界面->Distribution-> 選中 Export as 并選擇Application OK,Next-> Don’t Re-sign ->Next 后面就是導出你放置的目錄啦!
好啦,不寫了,就這里吧,都凌晨3:29了。 ?咳咳。睡覺睡覺。晚安 各位;?
- 前言
- 【Iphone 游戲開發】游戲引擎剖析
- [Object-C語言隨筆之一]Mac os 下搭建iOS開發環境
- [Object-C語言隨筆之二] 《NSLog》常用的打印調試語句與自動排版
- [Object-C語言隨筆之三] 類的創建和實例化以及函數的添加和調用!
- [Object-C語言隨筆之四]創建視圖并繪制簡單圖形
- 【iOS-Cocos2d游戲開發之一】搭建cocos2d游戲引擎環境HelloWorld!
- 【iOS-Cocos2d游戲開發之二】Cocos2D 游戲開發資源貼(教程以及源碼)
- 【iOS-Cocos2d游戲開發之三】CCScene切換的所有特效(28種)以及設置屏幕橫豎屏!
- 【iOS-Cocos2d游戲開發之四】獨自收集Cocos2d提供的字體!共57種(有對照的字體圖)
- 【iOS-Cocos2d游戲開發之五】多觸點與觸屏事件詳解(單一監聽、事件分發)【11月28日更新】
- 【iOS-Cocos2d游戲開發之六】對觸屏事件追加講解,解決無法觸發ccTouchMoved事件[重要!]
- 【iOS-Cocos2d游戲開發之七】在cocos2d中添加/刪除系統組件,并解決View設置透明會影響View中的其他組件的問題!【11月28日更新解決添加組件Cocos2d動畫停止播放的BUG】
- 【iOS-Cocos2d游戲開發之八】開啟高清(960*640)模式問題與解答、圖片適配以及設置iphone橫豎屏
- 【iOS-Cocos2d游戲開發之九】講解CCSpriteBatchNode與TP工具的".pvr.ccz",".plist"共用的終極精靈優化及注意事項!
- 【iOS-Cocos2d游戲開發之十】添加粒子系統特效并解決粒子特效與Layer之間的坐標問題;
- 【iOS-Cocos2d游戲開發之十一】使用Box2d物理系統以及在cocos2d框架添加Box2d物理系統lib包的方法
- 【iOS-Cocos2d游戲開發之十二】淺析使用C++/C/OC進行iOS游戲混編出現“failed with exit”問題與小結;
- 【iOS-Cocos2d游戲開發之十三】CCSprite利用Bezier(貝塞爾)做拋物線動作并讓CCSprite同時播放兩個Action動作!
- 【iOS-Cocos2d游戲開發之十四】音頻/音效/視頻播放(利用Cocos2D-iPhone-Extensions嵌入Cocos2d進行視頻播放!)
- 【iOS-Cocos2d游戲開發之十五】詳解CCProgressTimer 進度條并修改cocos2d源碼實現“理想”游戲進度條!
- 【iOS-Cocos2d游戲開發之十六】添加本地通知(UILocalNotification)以及添加系統組件滾動視圖(UIScrollView)!【2011年11月15日更新】
- 【iOS-Cocos2d游戲開發之十七】靈活使用精靈可視區域(TextureRect)與錨點(anchorPoint),并結合可視區域與錨點制作進度條!
- 【iOS開發必備指南合集】申請企業級IDP、真機調試、游戲接入GameCenter 指南(實現仿官方的成就提示)、游戲接入OpenFeint指南;
- 【iOS-Cocos2d游戲開發之十八】解決滾屏背景/拼接地圖有黑邊(縫隙)/動畫播放出現毛邊以及禁止游戲中自動鎖屏問題!【2011年12月18日補充】
- 【iOS開發必收藏】詳解iOS應用程序內使用IAP/StoreKit付費、沙盒(SandBox)測試、創建測試賬號流程!【2012-12-11日更新獲取"產品付費數量等于0的問題"】
- 【iOS-cocos2d-X 游戲開發之一】在Mac下結合Xcode搭建Cocos2d-X開發環境!
- 【iOS-cocos2d-X 游戲開發之二】【必看篇】總結闡述Cocos2d-X與Cocos2d-iphone區別;
- 【iOS-Cocos2d游戲開發之十九】游戲數據存儲的四種常用方式NSKeyedArchiver/NSUserDefaults/Write寫入/SQLite3
- 【iOS-Cocos2d游戲開發之二十】精靈的基礎知識點總匯(位圖操作/貼圖更換/重排z軸等)以及利用CCSprite與CCLayerColor制作簡單遮蓋層!
- 【iOS-Cocos2d游戲開發之二十一 】自定義精靈類并為你的精靈設置攻擊幀(指定開始幀)以及擴展Cocos2d源碼的CCAnimation簡化動畫創建!
- 【iOS-Cocos2d游戲開發之二十二 】CCSpeed實現CCAnimate動畫進行時設置慢動作以及設置游戲加減速進行(塔防游戲必備)!
- 【iOS-cocos2d-X 游戲開發之三】Mac下配置Android NDK環境并搭建Cocos2d-x環境并Eclipse正常編譯運行Cocos2dX自帶TestsDemo項目!
- 【iOS-cocos2d-X 游戲開發之四】Cocos2dX創建Android NDK新項目并編譯導入Eclipse中正常運行!
- 【iOS-cocos2d-X 游戲開發之五】游戲存儲之Cocos2dX自帶CCUserDefault類詳解;
- 【iOS-cocos2d-X 游戲開發之六】使用Base64算法對Cocos2dX自帶CCUserDefault游戲存儲數據編碼!
- 【iOS-cocos2d-X 游戲開發之七】整合Cocos2dX的Android項目到Xcode項目中,Xcode編寫&編譯代碼,Android導入打包運行即可!
- 【iOS-iap防護】驗證用戶付費收據!拒絕iap Cracker!拒絕iap Free!讓iphone越獄用戶無從下手!【2012年5月2日更新防護iap Free的方法】
- 【COCOS2DX-LUA 腳本開發之一】在Cocos2dX游戲中使用Lua腳本進行游戲開發(基礎篇)并介紹腳本在游戲中詳細用途!
- 【iOS-cocos2d-X 游戲開發之九】Cocos2dx利用CCSAXParser解析xml數據&CCMutableDictionary使用與注意!
- 【iOS-cocos2d-X 游戲開發之十】自定義CCSprite/Layer/CCNode及靜態類模版&自定義類細節說明&Cocos2dx觸屏事件講解
- 【iOS-cocos2d-X 游戲開發之十一】New CCSprite()帶來的錯誤&使用CCUserDefault及pvr.ccz在Cocos2dx中要注意!
- 【iOS-cocos2d-X 游戲開發之十二】自定義Cocos2dx搖桿(增強Joystick),增加搖桿跟隨用戶觸點作為搖桿坐標,讓搖桿不再死板!
- 【iOS-cocos2d-X 游戲開發之十三】詳細講解在Xcode中利用預編譯并通過Jni調用Android的Java層代碼(cocos2dx里訪問調用Android函數)!
- 【iOS-cocos2d-X 游戲開發之十四】Xcode中c++&Object-C混編,詳細介紹如何在cocos2dx中訪問object函數以及Apple Api
- 【iOS-cocos2d-X 游戲開發之十五】Cocos2dx中響應Android的Back(返回)與Menu(小房子)事件&&Cocos2dx自動釋放粒子內存函數!
- 【iOS-cocos2d-X 游戲開發之十六】配置你的Cocos2dx項目編譯后的Android自動使用(-hd)高清圖&設置Android自適應屏幕、縮放比例方法!
- 【Cocoa(mac) Application 開發系列之四】動作編輯器(Cocos2dx)制作流程詳解及附上響應鼠標滾軸事件、反轉坐標系、導入/創建資源目錄等知識點代碼!
- 【Cocos2d-X(2.x) 游戲開發系列之一】cocos2dx(v2.x)與(v1.x)的一些常用函數區別講解!在2.x版CCFileData類被去除等
- 【Cocos2d-X(2.x) 游戲開發系列之二】cocos2dx最新2.0.1版本跨平臺整合NDK+Xcode,Xcode編寫&編譯代碼,Android導入打包運行即可!
- 【Cocos2dX(2.x)_Lua開發之三】★重要必看篇★在Lua中使用自定義精靈(Lua腳本與自創建類之間的訪問)及Lua基礎講解
- 【Cocos2d-X(2.x) 游戲開發系列之三】最新版本cocos2d­2.0­x­2.0.2使用新資源加載策略!不再沿用-hd、-ipad、-ipadhd添加后綴方式
- 【Cocos2d-X(1.x 2.x) 修復篇】iOS6 中 libcurl.a 無法通過armv7s編譯以及iOS6中無法正常游戲橫屏的解決方法
- 【Cocos2d-X(1.x 2.x) 】iOS6與iphone5適相關設置隨筆(解決第三方類庫無法通過armv7s編譯的方法、添加Default-568h@2x.png)