自用游戏HTML5 sdk技术设计手册

1、概述

1.1.
目的

             
指导合作伙伴的HTML5工程师开发集成sgt平台开放能力。

 

2、准备

2.1.
技术架构

通讯协议是jsonrpc2.0,https://github.com/Textalk/jquery.jsonrpcclient.js

使用jQuery库

       2.2.
引用jQueryjsonrpc2.0


<script type="text/javascript" src="js/jquery.1.9.1.js"></script>

<script type="text/javascript" src="js/jquery.jsonrpcclient.js"></script>

       2.2.
定义变量


   var sgth5={

Appid:null,//zsd_sgp 应用标识

Appgateway:‘http://…………/route‘,//网关

Approutedata:null,//节点node

channelId:null,//标识

username:null,//用户

userpassword:null,//用户密码

userdata:null,//用户信息

playserverdata:null,//player服务器信息

};

用户使用前先填写Appid、Appgateway、channelId信息

       2.2.
定义对象

Player对象


var player=function(){

this.customId=null,//String 自定义ID

this.equip=null,//String 装备

this.id=0,//String 主键

this.lastLoginTime=sgth5.userdata.lastLoginTime,

this.level=null,//int 等级

this.name=null,//String 名字

this.serverId=sgth5.playserverdata.id,

this.type=null,//String 类型

this.userId=sgth5.userdata.userid,

this.vip=null;//int VIP 等级

};

mail对象


 var mail=function(){

this.attachment=null,//String 附件

this.content=null,//String 内容

this.fromId=null,//String 发送者ID

this.fromName=null,//String 发送者名称

this.id=null,//主键

this.sendTime=(new Date()).getTime(),//发送时间

this.status=0,//状态

this.title=null,//String 标题

this.toId=null,//String 接收者ID

this.toName=null,//String 接收者名称

this.type=0;//类型

};

 

ticke对象


var Ticke=function(){

this.content=null,//反馈给后台的内容

this.createTime=(new Date()).getTime(),//提交时间

this.feedbackInfo=null,//处理完返回给提交者的信息

this.id=0,//主键

this.senderPlayerId=null,//提交者ID

this.status=1,//状态

this.targetPlayerId=null,//目标角色ID

this.title=null,//标题

this.type=1;//类型

};

3、接入流程

3.1.
url
解释

  Var backClient=new
$.JsonRpcClient({ajaxUrl: ${host}+‘/‘+ ${appid}+‘/${appServer}.do‘ });

3.2
API
设计

  


sgth5.GetPlayerInfo=sgth5.Class.extend({
url:null,
playerId:null,
userData:null,
playerData:null,//当前角色信息
init:function(){
if(sgth5.GetServer.userData==null){
console.log(‘There was an error:‘, ‘没有取得用户数据!‘);
return false;
}
if(sgth5.GetServer.playServerData==null){
console.log(‘There was an error:‘, ‘没获取角色服务器信息!‘);
return false;
}
this.userData=sgth5.GetServer.userData;
this.url=sgth5.GetServer.playServerData.address+‘/‘+sgt.AppId+‘/sgpplayer.do‘;
return true;
},
/**创建角色
* playerinfo palyer对象
*
* obj 回调函数
*/
creatPlayer:function(playerinfo,obj){
playerinfo.lastLoginTime=this.userData.lastLoginTime;
playerinfo.serverId=sgth5.GetServer.playServerData.id;
playerinfo.userId=this.userData.userid;

var backClient = new $.JsonRpcClient({ ajaxUrl: this.url });
backClient.call(
‘create‘,
[playerinfo],
function(result){
obj(true,result);
},
function(error){
console.log(‘There was an error:‘, error);
obj(false,error.message);
}
);
}
……

});
sgth5.GetPlayerInfo.create=function(playerId){
var ret = new sgth5.GetPlayerInfo();
if(playerId!=null){
ret.playerId=playerId;
}
if (ret && ret.init())
return ret;
return null;
};

4API定义


/**

* 获取获取注册或登录的服务器api

*/

sgth5.getnode={

/**

* 获取user节点

* type String 类型

* obj 回调函数

*/

getRegisterServer:function(type,obj){

……

},

/**

* 玩家注册

*

* obj 回调函数

*/

register:function(obj){

……

},

/**

* 玩家登录

*

* obj 回调函数

*/

login:function(obj){

……

},

/**

* 获取player服务器信息

*

* obj 回调函数

*/

getplayserver:function(obj){

……

}

};

/**

* 玩家角色API

*/

sgth5.getplayerinfo={

/**创建角色

* playerinfo palyer对象

*

* obj 回调函数

*/

creatplayer:function(playerinfo,obj){

……

},

……

……

};

sgth5.GetPlayerInfo.create=function(playerId){
var ret = new sgth5.GetPlayerInfo();
if(playerId!=null){
ret.playerId=playerId;
}
if (ret && ret.init())
return ret;
return null;
};

/**

* 公告API

*/

sgth5.announcementinfo=sgth5.Class.extend({

……

……

});

sgth5.announcementinfo.create=function(playerId){
……
};

/**

* 签到API

*/

sgth5.Checkininfo=sgth5.Class.extend({

……

……

});

/**

* 排行榜API

*/

sgth5.LeaderBoardinfo=sgth5.Class.extend({

……

……

});

/**

* 邮件API

*/

sgth5.Mailinfo=sgth5.Class.extend({

……

……

});

/**

* 活动业务接口

*/

sgth5.Campaigninfo=sgth5.Class.extend({

……

……

});

/**

* BOSS业务接口

*/

sgth5.Bossinfo=sgth5.Class.extend({

……

……

});

/**

* 抽奖业务接口

*/

sgth5.GachaBoxinfo=sgth5.Class.extend({

……

……

});

/**

* 黑名单业务接口

*/

sgth5.Blacklistinfo=sgth5.Class.extend({

……

……

});

/**

* 好友业务接口

*/

sgth5.Friendshipinfo=sgth5.Class.extend({

……

……

});

/**

* 反馈举报 业务接口

*/

sgth5.Tickeinfo=sgth5.Class.extend({

……

……

});

第一次开发设计SDK可能有很多不合理的地方,有大神可以指点一下!

时间: 2024-10-22 15:33:57

自用游戏HTML5 sdk技术设计手册的相关文章

手机游戏渠道SDK接入工具项目分享(二)万事开头难

一般接到任务后程序员们通常都开始着手进行技术调研了,但我这活是项目负责人.还有一大堆事情要先期准备,没人能帮忙. 一.人力配置 考虑的之前已经有一波人搞了大半年,但没有起色,先期也没有太大人力需求,所以不指望这批人了.因为是外包收钱按人头工时算,所以拉几个自己兄弟填坑. 初期人力配置 服务端x 1.Android x 1 二.开发需求 自己手机游戏CP作了3年,需求直接写完后让对方确认,一次通过. 1.      公司多款游戏都需要使用这套工具,需要作适配兼容,还好都是Unity3D项目.之后我

手机游戏渠道SDK接入工具项目分享(一)缘起

#剧情章节 # 上周刚结束一个外包的项目,开发手机游戏渠道SDK聚合接入工具的,现在有空回顾整理一下这个项目开发过程,因涉嫌商业秘密不会提供项目代码,只谈下开发思路和掉过的坑. 本人多年从事手机互联网行业,从当年的功能机一直搞到红的发紫的手机游戏,一年前离职开始自己的APP开发外包生意. 十几年间许多相熟的老同事不是当了高管就已有自己公司了,到处拜访找老同事拉业务居然还能蹭上饭,感叹作技术的都是好兄弟. 找到之前公司一位老领导刚接手一家手机游戏开发公司管理层,被拉住聊了一晚希望我加入,但因为自己

手机游戏渠道SDK接入工具项目分享(三)拨开云雾是个坑

一直在纠结是先写框架设计还是先写掉过的坑,最后本这娱乐大众的态度先写掉过的坑让大家乐呵下. 项目开发过程中遇问题无数,回顾下8个大坑照成了项目一定程度上延期甚至返工. 1.  项目一开始几个人把现有3家主流的产品(1接,棱镜,AnySDK)研究了一遍.没想先在这里就进坑了.在研究了几天后发现这3家虽推出有一定时间,但都是以第三方服务角度设计和开发的产品,与需求不符. 2.  版本管理.和流程管理等内容因为运营人员更替一直在调整,直到我提出需要加价才做吧.需求上快把打包工具做成OA系统了,删除了于

Android应用内社区SDK技术架构浅析

Android应用内社区SDK技术架构浅析 应用内微社区是什么 ? 图1 图2 雪球财经应用内社区 一.以友盟微社区为例 简单来说,友盟的微社区就是一款帮助开发者在应用中快速搭建一个社区( 类似于新浪微博.朋友圈 )的产品.在很多应用中,开发商往往都会需要一个用户之间以及用户与开发商之间互动的社区,用户往往又会在社区里选择赞.评论.关注.转发.发帖等各种互动方式.但是开发一个社交系统可不是那么容易的一件事,复杂的用户关系.消息流.服务器架构等等都是棘手的问题,更重要的是大家都是重复地劳动!每个开

开发腾讯移动游戏平台SDK ios版Ane扩展 总结

本文记录了在开发 腾讯移动游戏平台SDK(MSDK) ios版Ane扩展 过程中所遇到的问题 文中非常多问题都是基础的问题.对object c和xcode配置了解不深入导致的.(没办法,开发ane的程序猿大部分都是做ActionScript的,一般对c/c++都没有开发经验) 问题一.编译报错:Unexpected '@' in program 代码例如以下: @try{ } @catch{ } 原因是高版本号xcode代码放在低版本号xcode下跑,低版本号ios 不支持这样的写法(ios 7

开发腾讯移动游戏平台SDK Android版Ane扩展 总结

来源:http://blog.csdn.net/linguifa/article/details/25832011 本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方案 问题一:编译报错:Unable to resolve target 'android-7': 将低版本的代码导入eclipse时,常遇到这样的问题:Unable to resolve target 'android-XX' 这是原代码中project.properti

【猪猪-前端】微信打飞机高质量Demo,学习HTML5+Canvas技术编写,下载即可使用,注释齐全。

原文:[猪猪-前端]微信打飞机高质量Demo,学习HTML5+Canvas技术编写,下载即可使用,注释齐全. 源代码下载地址:http://www.zuidaima.com/share/1553027668610048.htm //获取绘图环境 02 var canvas=document.getElementById('canvas'); 03 var context=canvas.getContext('2d'); 04   05   06 //创建对象集合 (集合所有精灵) 07 var 

【SIGGRAPH 2015】【巫师3 狂猎 The Witcher 3: Wild Hunt 】顶级的开放世界游戏的实现技术。

[SIGGRAPH 2015][巫师3 狂猎 The Witcher 3: Wild Hunt ]顶级的开放世界游戏的实现技术 作者:西川善司 日文链接  http://www.4gamer.net/games/202/G020288/20150811091/ 计算机图形和交互技术的学术大会[SIGGRAPH 2015],在北美时间的8月9日到13日召开了. SIGGRAPH 2015的会场,因E3而被熟知的洛杉矶会议中心 SIGGRAPH有着美国洛杉矶和以外地区交替举办的惯例,2014年是在加

谈谈饥荒这个游戏的内部技术

对于我来说,我想Hook饥荒,可这是一个神奇的程序,用了D3D9但是又截获不到dx的present函数,也就是它内部没有调用. 不过游戏的显示依然正常,绘制非常流畅,应该不是使用gdi/gdiplus.分析了一下加载的模块,包含了谷歌的angelproject.谷歌这个项目是opengl es的directx实现.但不管是什么项目,如果用dx,最终都应该调用present/ex吧! 摸不清饥荒的套路,望思路清晰的高手指教. 谈谈饥荒这个游戏的内部技术