转载请注明出处:http://www.cnblogs.com/zisou/p/xianfan01.html

公司的项目总算告一段落了,年前憋到年后,总算要上线了,所以我也有了时间来搞我自己的游戏项目了,和大多数开发者一样,或许每个做游戏的心里面都有自己的一个世界属于自己的一个梦,这次我还要继续做梦,呵呵。

《仙凡奇缘》官方网站

www.xianfancoco.com

好了,下面我赘述一下这个RPG网游的架构,服务器端由socket+http,语言我用c#,因为以前有了一套比较成熟的后台系统附带了一个tcp通讯协议的轻量级服务监控端。服务端主要还是以HTTP为主,C#的托管机制让我开发服务器变得相当快捷,相当顺当;

有了上图,大家应该知道了做一个网游不易,一个人恐怕撸不起来。确实,这需要非常多的时间精力,和技术支持;但是我们从简化,从策划,服务端,客户端,任何模块我们都从简(从简不等于不做,是少做,而且做精一个就行),毕竟我们有雄心壮志,也难免实现宏伟目标;

回归这次主要正题:注册登录;

服务器端我已经做了提供了如下接口HTTP协议,采用POST协议方式获取客户端的消息:

部分核心代码内容:

 1 if (!IsPostBack)
 2             {
 3                 APIId = Convert.ToInt32(Request.Form["APIId"]);
 4                 switch (APIId)
 5                 {
 6                     //注册
 7                     case 10000:
 8                         useremail = Request.Form["useremail"];
 9                         pwd = Request.Form["pwd"];
10                         phonenumber = Request.Form["phonenumber"];
11                         username = Request.Form["username"];
12                         returnstring = APIId + "|" + C_user.reguser(useremail, pwd, phonenumber, username) + "|";
13                         break;
14                     //登陆
15                     case 10001:
16                         useremail = Request.Form["useremail"];
17                         pwd = Request.Form["pwd"];
18                         returnstring = APIId+ "|" + C_user.userlogin(useremail, pwd)+ "|" ;
19                         break;
20                     //创建角色
21                     case 10002:
22                         gamename = Request.Form["gamename"];
23                         number = Request.Form["number"];
24                         sex = Request.Form["sex"];
25                         zhiye = Request.Form["zhiye"];
26                         returnstring = APIId + "|" + C_user.reguser_passuserinfo(number,gamename,sex,zhiye) + "|";
27                         break;
28                     default:
29                         returnstring = "数据有误";
30                         break;
31                 }
32             }

View Code

目前主要开发了:登录,注册,和创建角色这三个协议,里面都是POST协议;

客户端代码又如何呢?首先我们得有重要的利器(curl)的访问方式,我建立了HttpWebServer.cpp类,并且进行了封装;

核心代码我贴出来:

//回调
size_t HttpWebServer::writehtml(uint8_t* ptr,size_t size,size_t number,void *stream)
{CCLog("%s",ptr);string reuturndata = (char*)ptr;ToDo::showTip(reuturndata);return size*number;//这里一定要放回实际返回的字节数
}string HttpWebServer::getReadyForPostData(CCArray* arraydata)
{string datastr = "";for (int i = 0; i < arraydata->count(); i++){CCString* ccdatastr = (CCString*)arraydata->objectAtIndex(i); if(i==0){datastr = ccdatastr->getCString();}else{datastr = datastr + "&" + ccdatastr->getCString();}}return datastr;
}void HttpWebServer::CurlPost(string url,string postdata)
{//APIId=10000&useremail=747204@qq.com&pwd=ysj55555&phonenumber=18618169949&username=ysj5555520//http://www.xianfancoco.com/AListenAPIweb/userComment.aspx
CURL *curl;CURLcode res;std::string cc;curl=curl_easy_init();if(curl){curl_easy_setopt( curl, CURLOPT_URL, url.c_str()); //请求的地址curl_easy_setopt(curl, CURLOPT_POST, true); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postdata.c_str());//启用POST提交 curl_easy_setopt( curl, CURLOPT_FOLLOWLOCATION, 23L); curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,writehtml); //处理的函数curl_easy_setopt( curl, CURLOPT_WRITEDATA, &cc);        //缓冲的内存res=curl_easy_perform(curl);if(res!=CURLE_OK){//CCLog("联网超时 %i",res);
        }curl_easy_cleanup(curl);}else{//CCLog("curl is null");return ;}
}

View Code

里面我封装了如何发送包POST方法和如何组合包的方法,这样使用起来就会相当的简便;

如服务器需要传:useremail = Request.Form["useremail"];
那客户端也有对应的POST方式,下面就是我如何发送客户端登录的请求方式:

CCArray * senddata = CCArray::create();string data;senddata->addObject(CCString::create("APIId=10001"));senddata->addObject(CCString::create("useremail=747204@qq.com"));senddata->addObject(CCString::create("pwd=ysj55555"));data =  HttpWebServer::getReadyForPostData(senddata);HttpWebServer::CurlPost(SERVICES_NAME_USER,data);senddata->release();TipBaseShowText(this,CCString::create("aaa"),CCString::create("SSS"),1.0f,1.0f,UI_TIP,true);

这样的封装将是以后我大量的使用的标本,登录和注册是简单的必要的用户操作行为,用户在么有用户名之前需要点击注册;
注册如下图:

登录界面如下图

输入框,以及登录或注册返回

声明一下这次写这系列博客主要是为了分享游戏制作经验,由于这次是个人项目,和公司无关,是否开源还得看游戏3个月以后的情况而定,本游戏所用资源全部来自于商业内部资源;

2014扬帆起航...

转载于:https://www.cnblogs.com/zisou/p/xianfan01.html

【cocos2d-x 仙凡奇缘-网游研发(1) 登录注册】相关推荐

  1. 【cocos2d-x 仙凡奇缘-网游研发(2) 角色换线系统】

    转载请注明出处:http://www.cnblogs.com/zisou/p/xianfan01.html 做一款游戏就先得制作好策划文档,和基本的人物世界构架的设计,然后架空在这样一个虚拟的世界中每 ...

  2. 想成为真正的网游研发员吗,从这开始吧

    目前,中国网游蒸蒸日上,无论是代理的,如魔兽世界(美国),劲舞团(韩国),地下城与勇士(韩国),还是自主研发的,如盛大的梦幻西游,腾讯的QQ炫舞,都是很成功的经典网游,并且,更加激励人心的是,中国研发 ...

  3. HTML5期末大作业:在线电影网站设计——电影速递网(12页面)含登录注册HTML+CSS+JavaScript

    HTML5期末大作业:在线电影网站设计--电影速递网(12页面)含登录注册HTML+CSS+JavaScript 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业 ...

  4. 基于HTML旅游网站项目的设计与实现——旅游官网9页 包含登录注册

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 游景点介绍 | 旅游风景区 | 家乡介绍 | 等网站的设计与制 ...

  5. SK电讯进军中国网游的四种原因

    下午看到的消息,韩国SK电讯将战略注资中国网游开发商趣味第一.据消息人士透露,此次SK电讯投资总额为3000万美元,本年度将不低于1000万美金,三年内总额为3000万美金,此笔资金不包括引进网游产品 ...

  6. 传华西村将斥资亿元涉足网游业

    据相关人士分析,华西集团将进行一次大手笔投资,这笔巨资将用于投资目前华西集团转型中所涉及到的网络科技行业,而其中绝大部分的资金将用来投资业内顶级的游戏研发团队,或者直接收购成熟的网游公司.据估算,华西 ...

  7. 成都涌现大量网游业创业团队:从业人员近3万(网游亦可创业)

    网游"川军" 成都已聚集210余家网游相关公司,从业人员近3万,一夜暴富神话在此接连上演 李秀中 刚接受完记者的采访,袁旭又忙着布置会议室,接待成都市高新区管委会主任韩春林的调研. ...

  8. 从画面质量看国产3D网游的技术性崛起

    http://lichufan.blog.sohu.com/70214695.html 国产网游近年来的发展速度有目共睹,无论是在质量还是数量上都有了长足的进展.其中不少游戏在引擎程序.画面美工和设计 ...

  9. 网游,陈一舟的左勾拳

    陈一舟掌控的千橡互动于7月10日宣布,斥资人民币1000万元收购休闲网页游戏开发商豌豆互动,这一消息引起业界关注.自从千橡互动获软银巨额投资后,一度潜水的陈一舟再次浮出水面,带着底气和自信,高调亮相. ...

最新文章

  1. 如何使用Laravel Debugbar?
  2. 编辑距离:最长公共子序列-LCS问题
  3. 第十一章:Java_多线程
  4. 使用Aspect和Spring Profile进行电子邮件过滤
  5. 解决AttributeError: 'str' object has no attribute 'decode'报错问题
  6. 手把手教你用Python来模拟绘制自由落体运动过程中的抛物线(附源码)
  7. 一款好用的绘图软件Draw.io,比Visio好用
  8. 【Brazilian ICPC Regionals - 2018】Soteros【树上启发式合并】
  9. SpringMVC 接口 JDK动态代理导致映射失败的原因 异步注解Async失效 微服务映射的位置
  10. Win7主题制作教程 电脑主题制作图文方法
  11. matlab车牌识别课程设计,matlab车牌识别课程设计报告模板(附源代码)
  12. 深度学习入门学习路线及好课推荐
  13. YARN-client提交任务处理过程
  14. 《1984》中所描绘的是怎样的一个存在
  15. tc_net_secu 使用手册
  16. 全球液晶面板市场格局或将改变,TCL将超越京东方成为老大
  17. 四人中三人说真话一人说假话如何用编程去判断这样的条件
  18. IC公司认可的数字IC_FPGA设计课程
  19. 利用gdal的RasterIO进行最近邻、双线性、三次卷积重采样的重采样
  20. Practice—毛绒玩具名字(字典序排序)

热门文章

  1. 解决windows10中开代理之后microsoft应用商店无法连接的问题
  2. 破碎流离的伤感QQ空间日志发布:我们的爱能有几次?
  3. bzoj 2434: [Noi2011]阿狸的打字机
  4. 苹果M1 Mac遇到蓝牙连外设连接不稳定经常断开怎么办?
  5. 程序员:如何走出自己的管理之路?
  6. (第十八集)前端开发之js
  7. greylist 灰名单 灰名单技术
  8. nginx中不同client设置User-Agent与user_agent的坑
  9. 交流/备用电池供电切换电路
  10. QUI的开工 -- 打造一个简单实用的UI库 , 征集LOGO