《超級瑪麗》1,超級瑪麗經典版
寫在遊戲開發文檔之前(這個遊戲是在13年暑假做的,曆時40天,學習引擎用了半個月,第一個遊戲有許多槽點,各位看官輕噴。這個文檔也是當時寫的,我也懶得再修補直接給貼上來了):
我在寫超級瑪麗的時候沒有考慮到螢幕適配的問題,當我在最後把代碼編譯到安卓平台上的時候才發現螢幕適配應該在最開始定下來,所以後來把代碼做了移植。這個遊戲原定的解析度就是480*320,所有的資源都是以這個解析度設計的大小,最後再螢幕適配過程中只需要一行代碼,就搞定了不同螢幕的適配問題,不過這個方法解決的不徹底,引擎提供的這個方法本來就是有缺陷的,但不影響遊戲的運行與體驗。
第一階段:
目標:讓馬里奧顯示在一張地圖上。效果如下:
1:製作一張tmx格式的地圖,製作地圖所使用的編輯器是開源的tilemap。這款編輯器是很多2D遊戲通用的磚塊地圖編輯器,編輯器產生的.tmx檔案可以被cocos2dx引擎中的CCTMXTiledMap,CCTMXLayer,CCTMXObjectGroup這三個類解析。
註:關於tilemap編輯器的使用網路上有很多,搜尋一下就有了
2:定義遊戲中的馬里奧主角,整個遊戲都是在控制馬里奧闖關,所以馬里奧的定義至關重要。在當前目標下只需要讓馬里奧表現出一張圖片,不需要動畫,一張靜態圖在地圖上左右平移就可以了。
註:遊戲中的主角類或是怪物類等一般有兩種繼承方式,要麼是繼承引擎裡的CCSprite;要麼是繼承引擎裡的CCNode,類裡面再維護一個CCSprite*變數這兩種處理方式都可以。不過在遊戲中作者用的是後一種方式,這樣子,馬里奧在接受碰撞處理時表現的是CCNode的性質,在狀態之間切換的時候私人變數CCSprite*可以做到馬里奧的狀態切換(就是換一張圖片顯示),播放各種動畫(這個後序詳述)。
3:有了一張地圖和一個馬里奧,還需要一個層來承接他們,引擎裡層是具備展現功能的一個類,遊戲裡的大多數邏輯也都是在層裡完成的。當然這個自訂的層CCGameLayer也是繼承自引擎裡的CCLayer。
註:把地圖和馬里奧添加到CCGameLayer裡的時候,涉及到幾個知識點,一個是錨點概念,網路上都有,這裡就不細述了,畢竟這個文檔是描述開發流程的,遇到的一些小知識點百度一下就理解了。另外一個比較重要的是局部座標系,添加函數addChild(CCNode *)(這個函數是引擎裡的CCNode類的成員函數,CCNode是遊戲裡能展現的所有內容的基類,這裡要把握住能展現出來的內容的基類,因為引擎裡的根基類是CCOject,這是用來引用計數的,便於引擎的記憶體管理,不理解的也可以百度下cocos2dx引擎的基於引用計數的記憶體管理原理,網路上類似的文章一大堆的。)
4:按照以上的流程下來,看到的效果是一個馬里奧在地圖上的某個位置處。第一階段算是結束了
一個《超級瑪麗》的版本
你下一個任天堂FC 那個遊戲有500個
PSP的《超級瑪麗》最好是ISO的
PSP平台的遊戲沒有超級瑪麗..因為超級馬里奧是任天堂公司出品的··不是 所以不會在PSP平台上出現(以後說不準)...
如果想玩超級馬里奧的遊戲的話你可以類比GBA或者N64···再或者....你買台NDSL..