概述
? ? ? ? DemoProject項目基于cocos2d-x3.4, 集成RainbowDesigner的Runtime代碼.
你可以基于DemoProject來快速創(chuàng)建自己的項目.
? ? ? ? DemoProject其實是一個精簡的Lua游戲框架, UI全部用RainbowDesigner設計的VO文件.?
UI布局/動畫 只需要美術(shù)使用RainbowDesigner設計成VO就可以了.
? ? ? ? ?RainbowDesiner設計的Lua框架堆巧,其實是一個經(jīng)典的MVC框架:
? ? ? ? ? ? ? ? i. ?視圖層就是VO文件
? ? ? ? ? ? ? ? ii. 控制層就是Lua腳本Controller代碼
? ? ? ? ? ? ? ?iii. Model層就是你有游戲數(shù)據(jù)管理器
如果對Cococs2d-x比較熟悉的話, 可以很快熟練使用.
如果打開工程?
使用vs2012打開項目
DemoProject\frameworks\runtime-src\proj.win32\xiaoxiaole.sln
目錄結(jié)構(gòu):
游戲入口在哪里胸懈?
如何在Vo文件中設置Controller炒瘸?
VO文件中只要設置了Controller了,框架會自動調(diào)用Controller中的相關(guān)邏輯贰盗。
1. 把UI文件中的Node,自動映射到腳本中
2.自動執(zhí)行腳本中的相關(guān)函數(shù), 比如onEnter/onExit潦嘶。创南。伦忠。等
如上圖,設置了membervar稿辙, 那么可以在Lua中直接訪問次變量:
? ? self.var_map:setPosition(100, 100)
是不是很方便呢
游戲UI方面抽象出2個基本的類昆码, Window和Dialog:
? ? ?Window: 可以理解為全屏窗體,同一時刻只有一個Window可能被打開邻储。
? ? ? ? ? ? ? ? Window的Controller需要繼承BaseController赋咽,例如:
? ? Dialog:對話框,在Window上層彈出式對話框芥备,會屏蔽底層點擊事件冬耿。
? ? ? ? ? ? ? ?Dialog的Controller請繼承BaseDialog,例如:
如何打開一個Window萌壳?
? ? ?TheGame.inst():show_window('viewobjects/Logo.vo', {})
? ? 會自動打開Logo.vo文件亦镶, 當Logo.vo文件被打開的時候日月,會自動加載Logo.vo文件的Controller代碼。
? ? show_window?可以帶參數(shù)傳遞給Controller哦缤骨, 次參數(shù)會映射為Controller中的entity變量爱咬,具體看下代碼吧 。
如何打開一個Dialog绊起?
? ? ?TheGame.inst():show_dialog('viewobjects/WidgetSetting.vo', {})
? ? ?會自動打開WidgetSetting.vo文件精拟, 以對話框方式打開, 并且自動加載Dialog的Controller代碼虱歪。
? ? ? show_dialog同樣可以帶參數(shù)傳遞給Controller蜂绎。