在家無事花幾天做了個放置掛機demo,做着玩吧。和海拓的《凡人修仙傳》類似吧,自動掛機刷怪打boss數值游戲,但是我比較喜歡二次元的,所以選了《緋雨騎士團》的資源。
參考了以下資料:
決戰沙城 :mvc,工具類
大富豪3: model層DataCenter數據中心
雷霆傳奇:mvp,工具類
騎戰三國:新手指引
puremvc:mvc
Laya工具類:Laya.Scene和Laya.Dialog
其他博客:對象池Pool
目前只實現了主場景尋路掛機打怪,得錢得經驗。模塊太多了,十幾個模塊,一個模塊N個二級頁面,肝多少天才能寫完啊,遂放棄了 >_<
開發時間 斷斷續續吧 打打游戲 看看電影 寫寫代碼
體驗地址:http://www.biliking.com/game/rainknight/
體驗二維碼:


框架部分如圖:

MVP:

1.控制
Controller 控制管理類主要是注冊,注銷control,保存controller
BaseControl 控制基類,主要是監聽和派發模塊內和模塊間,以及網絡事件。模塊view和model之間的邏輯。
2.數據
BaseModel 數據基類,啥也沒有。這里不需要和視圖交互,不需要派發事件。
DataCenter 數據中心,單例,所有數據保存在數據中心,並通過數據中心獲取。
3.視圖
BaseView 視圖基類
BaseDialog 會話框基類,主要領取獎勵,斷線提示啊之類的會話框
BasePanel 模塊基類,主要是角色,技能,打造等等模塊類。
BaseScene 場景基類,主要是登錄,游戲場景等
ViewManager 視圖管理類,主要是注冊,打開,關閉,保存視圖,內置模塊所需加載資源配表,加載動畫等
DialogManager 會話框管理類 ,繼承自ViewManager
Panelmananger 模塊管理類,繼承自ViewManager
SceneManager 場景管理類,繼承自ViewManager
自定義組件:

BitmapFont 自定義位圖字體,不需要texturemerger制作字體了。支持單張數字圖,整張數字圖加載並顯示位圖字體,drawcall=1,字體位圖緩存共用,節約內存。
BitmapMovie 自定義影片剪輯,不需要龍骨或texturemerger制作幀動畫了。支持單張幀動畫,整張幀動畫圖加載並播放動畫,drawcall=1,使用位圖緩存效率尚可。
LoadAnim 資源加載,網絡請求等loading動畫
NativeToUI 微信小游戲,跳轉其它小游戲的圖標,間隔晃動動畫
ScreenLock 屏幕鎖定類,部分操作時,鎖定屏幕不讓操作
ScrollVIew 圖片輪播組件
Tips 游戲內提示組件,比如獲得經驗,獲得金幣等等提示。
UIPopupMenu 下拉菜單組件
BaseBone 自定義龍骨組件,支持局部換裝,全局換裝,龍骨資源異步加載等等
BaseMovieClip 自定義龍骨導出的幀動畫組件
新手指引:

GuideManager 新手指引管理類,支持注冊,下一步,引導配置等等
GuideMask 新手指引遮罩等,鏤空一個矩形局域
GuideReverseMask 新手指引遮罩類,支持反向遮罩,鏤空一個不規則區域,例如圓形,圓角矩形等等。
手勢:

GestureDrag 拖拽手勢
GesturePinch 兩指放大手勢,例如兩指放大一張圖片
通訊:

Http http通訊類,支持post,get,put通訊,支持通訊失敗重新發送,支持序列發送
HttpUrl 通訊接口
NetLock 通訊鎖屏,特殊請求必須等待返回才能進行下一步操作時,進行鎖屏
ClientSocket websocket通訊,支持連接,斷線重連,消息派發,消息加解密,protobuf,json格式
ClientSocketIO socket.io通訊類
ProtoUrl 通訊接口
SocketConst 通訊事件常量
聲音:

BaseSound h5平台聲音類,封裝了egret.Sound和對應的egret.SoundChannel,方便操作
ISoundManager 聲音管理類接口
SoundManager h5平台聲音管理類,支持播放音效,背景音樂,異步加載音樂,帶緩存列表支持同時播放相同音樂
WxSoundManager 微信小游戲平台聲音管理類, 功能同上
平台:

DebugPlatform 普通調試環境
IPlatform 平台接口
WxPlatform 微信小游戲平台,封裝了微信接口
工具類:

ArrayUtils 數組工具類
BtnTap 按鈕事件類,支持按鈕點擊動畫,點擊聲音
DateTimer 基於系統時間的計時器,不受瀏覽器休眠影響
DeviesUtils 設備工具類, 主要是微信,移動,pc平台的判斷等等
EventManager 事件管理類, 主要是框架模塊間的事件監聽,派發等管理
LayerMananger 圖層管理類, 主要是場景層,彈框層,會話層,提示層等等
LocalStorage 本地緩存工具類
Log 調試信息工具類
NumberUtils 數字工具類
Pool 對象池
ResUtils 資源管理類,支持單個Group加載,多個Group加載,皮膚配置文件加載,靜默加載等等
ShakeUtils 震動效果類,有空了應該封裝到一個動畫的特效類里。
StageUtils 舞台工具類, 主要是保存了stage,並對stage進行操作,或者獲取stage屬性,額外支持屏幕適配模式設置
TimerManager 計時器管理類,這是唯一個直接復制決戰沙城的工具類。。。
VirtualJK 虛擬搖桿組件,這個應該放到自定義組件里,漏了。。
WxAuth 封裝微信小游戲平台授權流程,應該放到platform里,漏了。。
WxDeviceMotion 微信設備工具類,支持搖一搖,手機翻轉,手機朝下等等判斷
Astar

Astar A*尋路算法
Game A*尋路使用demo
Grid 格子
Node 節點
App

保存了所有工具類的引用,這樣可以方便使用
//訪問登錄數據的用戶id
let userID:string = App.DataCenter.LoginModel.userID;
//打開一個對話框
App.Dialog.open(HttpErrorDialog);
//打開登錄場景
App.Scene.open(LoginScene);
//顯示一個提示
App.Tips.show("業務模塊就不寫了");
游戲代碼部分:

Main 入口文件
VersionManager 資源版本管理
其他就是常規的游戲和業務模塊了,目前只寫了登錄,角色,伙伴,游戲主場景。
rpg模塊太多了,一個模塊下面還有N個二級界面,一個人要寫到死哦。業務模塊也沒什么含金量。就不寫了。累。
