《怪獸必須死》游戲框架分析


一 游戲接入平台

二 游戲版本管理解決方案

三 通訊解決方案

四 其它工具類

五 源碼下載

 

一 游戲接入平台

愛微游平台:http://play.11h5.com/game/?gameid=62&code=c-3b84ffb5e4a537303109245489db32fb

接入玩吧:http://qzs.qzone.qq.com/qzone/qzact/act/game/wanba/index.html

 

 

二 游戲版本管理解決方案

主要的需要版本號的文件

main.min.js

default.res.json

default.thm.json

 

main.min.js更新實現方案

默認寫死main.js?v=20170214104539。

當加載超過5s,出現重載按鈕,獲取Date.now()作為版本號加載。

<script>
		function reload()
		{
			window["AWY_SDK"].setItem("gameVer", Date.now());
			location.reload();
		}
		function hideLoading()
		{
			var preloadDiv = document.getElementById("preloadDiv");
			preloadDiv.style.display = "none";
		}
		setTimeout(function()
		{
			var reloadBtn = document.getElementById("reloadBtn");
			reloadBtn.style.display = "block";
		}, 5000);
		var gameVer = window["AWY_SDK"].getItem("gameVer");
		if (gameVer)
		{
			window["AWY_SDK"].loadSingleScript("main.min.js?v=" + gameVer, function()
			{
				egret.runEgret();
			});
		}
		else
		{
			window["AWY_SDK"].loadSingleScript("main.min.js?v=20170214104539", function()
			{
				egret.runEgret();
			});
		}
    </script>
//加載單一script文件
sdk.loadSingleScript = function(src, callback) { var node = document.createElement("script"); node.src = src; if (node.hasOwnProperty("async")) { node.async = false } node.addEventListener("load", function() { this.removeEventListener("load", arguments.callee, false); if (callback) { callback() } }, false); document.body.appendChild(node) };

sdk.loadSingleScript("http://qzonestyle.gtimg.cn/open/mobile/h5gamesdk/build/sdk.js", callback);

 

default.res.json和default.thm.json更新實現方案

游戲內,使用window["game_version"]獲取寫死在index.html中的版本號

<script>var platform = "vutimes";</script>
<script>var engine_version = "3.2.3";</script>
<script>var game_version = "20170214104539"</script>
var e = "resource/default.res.json?v=" + ExternalUtil.inst.getVersion();
var e = "resource/default.thm.json?v=" + ExternalUtil.inst.getVersion();

 

default.res.json內資源,使用手寫版本號...

 

三 通訊解決方案 

1 通訊工具類:NetService。游戲沒有使用websocket,而是使用http進行服務端通訊。

 

2 http發送格式

GET數據格式:

url?cmd=xxx&token=xxx&date=Date.now()&拼接其它數據

POST數據格式:

post的data數據 request.data = "cmd=xxx&token=xxx&date=Date.now()&拼接其它數據"

 

3 http接收

loader.data = json格式

{

  diamond:xxx,

  spendDiaomon:xxxx

}

 

4 token。定義在AWY_SDK.js中,值從url上獲取。

var sdk = window.AWY_SDK || {};

sdk.init = function() {
    sdk.token = sdk.getURLVar("token")
};

sdk.getURLVar = function(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    return r != null ? unescape(r[2]) : null
};

如果有測試token,則使用測試的

NetService.inst.token = VUEngine.TEST_TOKEN ? VUEngine.TEST_TOKEN: ExternalUtil.inst.getToken();

  

 

 

四 其它工具類

TickerUtil              ?

StringUtils            字符串

ArmatureManager  骨骼

EventManager       事件管理, 繼承EventDispatcher,寫成了單例類

DisplayUtil            

PanelManager        彈框管理。

                           新建getDefinitionByName

                           彈框模態isModal

                           圖層管理this._layerMap

CommandID          Control層,注冊Command。用於處理http返回數據。

NetService            網絡通訊層,http通訊,發送和處理接收數據

                           sendCallBack  發送並設置回調

                           sendNextRequest  序列發送,發送並接收處理數據后,再發送下一條

                           發送方式egret.URLLoader,egret.URLLoaderDataFormat.TEXT

                           發送格式:cmd + token + date  (token在游戲拼在游戲鏈接上)

                           返回格式:json的string

DefaultProcessing  數據發送等待,發送數據時顯示,接收數據時隱藏。     

ExternalUtil           外部處理,斷線刷新、重新登錄等。主要是調用window的代碼和設置index.html中變量。

UserProxy             用戶數據

BigNum                 大數字處理

Dictionary              flash詞典類

EffectUtils              特效類

ImageLoader          圖片加載,有回調

GeomUtil                數學計算,距離之類

IncreaseUtils           技能增加顯示

ItemUtil                  寶石、物品

LoaderUtils             異步加載,有回調

MathUtil                 數字處理

MovieClipUtils         影片剪輯

ObjectPool             對象池

RegUtils                正則

ShareUtil               分享,二維碼,分享標題等

BasePanel             彈框基類

Alert                     提示框

AutoBitmap          圖片加載

Broadcast             游戲廣播

SimpleButton       簡單按鈕

VUEngine            游戲全部變量

DataConfig          存放json,接口getTableData從json中獲取數據。 游戲的配置大多都放在data.json中。

Config                 配置信息

 

 

五 源碼下載

怪獸必須死源碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM