在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly)
原地址:http://www.myexception.cn/program/1399860.html
在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly)
在MAC下调试运行暗黑世界客户端及部分代码注解(基于Firefly)
目前有两个客户端,一个基于cocos2d-x、一个基于unity3d,这两个客户端的调试运行官网也有相关教程,我这是基于我自己的mac环境调试运行的。
一、先是基于coco2d-x的客户端
1、最快的方式是,先在mac安装xcode,我这用xcode4.6,然后下载cocos2d-x安装包,我这用2.1.5,直接解压到documents得到cocos2d-x-2.1.5,不用着急装他的模板,接着下载暗黑世界coco2d-x客户端,我的是1.4版本,居然200多M,解压后,得到一个叫tsDemo的文件夹,在cocos2d-x-2.1.5新建一个叫project文件夹(其实名字随便),把tsDemo拖拽到这个文件夹下;
2、进入tsDemo目录,选择proj.ios,点击进入,在此目录下双击tsDemo.xcodeproj,即可将工程导入Xcode;
3、但此时直接点击运行可能会出错,是因为没有添加路径,点击工程tsDemo,在右边选择TARGETS下的工程,在Build Settings里找到Header Search Paths,然后点击左下角的加号,输入"$(PROJECT_NAME)/Classes/json/include/json"即可将此路径添加进工程。
4、至此客户端应该已经跑起来了。
参考链接:http://www.9miao.com/thread-33127-1-1.html
二、基于U3D的客户端
1、安装unity3d 4.x,可以注册免费版;
2、下载暗黑世界U3D客户端,目前是1.0版本,解压得到一个包DiabloWorldV1.unitypackage;
3、打开Unity3d 创建一个Project,在Assets右键选择导入包,默认包,选中DiabloWorldV1.unitypackage进行导入;
4、导入完毕后,在Assets选中Map,双击start场景,然后点击工具栏上的运行,就跑起来了。
5、要修改服务器IP和端口的话,在start场景下,左侧HeHierarchy选中Globals下的Netmar,右边Inspector下SIP和IPort分别代表主机地址和端口。
参考链接:http://www.9miao.com/thread-42791-1-1.html
最后附上一些客户单端代码中文介绍
关于cocos2d-x:
-----------------------------------------------------
一些类:
1. loginregister\logo.h 程序启动的Logo,里面有个动作类,2秒后自动切换场景
2. loginregister\LayerLogin.h 登录界面
3. CData.h 系统一些操作类,播放音频
4. extentionClass\network\SocketManager.h 客户端Socket管理类,是个单例. 在startSocket方法里带有服务器地址和端口
5. extentionClass\network\SocketClient.h SocketClient 有2个线程,收发消息
6. Loading.h 等待UIAlert
7. headFile\zhujieMian\homepage.h 主页, init 的时候发送消息[4500]给服务器,然后起定时器等待服务器回复.
收到回复后,初始化窗体initTitle,btnsLoading,zhuangtaiLoad
8. headFile\zhujieMian\levelMap.h clkBuilding 点击某个副本响应事件
9. headFile\zhujieMian\popwindow.h 弹出窗口,点击副本之后调用显示的窗体. buildingpop::fight 发送战斗请求.
10.FireWork.h 战斗场景表现类
-----------------------------------------------------
登陆流程:
1、登陆界面:loginregister\LayerLogin.h
2、单例实例化:LayerLogin::init
SocketManager::getInstance()->startSocket();
3、点击登陆:LayerLogin::menuItemCallbackLogin
3.1、使用SocketManager单例发送用户名密码
Json::FastWriter writer;
Json::Value person;
person["username"]=userName;
person["password"]=password;
std::string json_file=writer.write(person);
//192.168.1.210 114.252.70.61 183.60.243.195
CCLog("%s",json_file.c_str());
SocketManager::getInstance()->sendMessage(json_file.c_str(), 101);
3.2定时器,每隔0.2秒检测一下是否接收到返回数据,如果接收到则取消定时器
this->schedule(schedule_selector(LayerLogin::receiveLoginData), 0.2);
4、登陆管理类:extentionClass\network\SocketManager.h
4.1、服务器地址配置:SocketManager::startSocket
_socket = new SocketClient("192.168.1.210",11009,1,1,NULL);
4.2、发送消息:SocketManager::sendMessage
Message *msg=_socket->constructMessage(data, commandId);
_socket->sendMessage_(msg, false);
5、SocketClient类:extentionClass\network\SocketClient.h
5.1、消息构造函数:SocketClient::constructMessage
5.2、消息发送函数:SocketClient::sendMessage_
//加锁
MyLock lock(&m_sendqueue_mutex);
//消息入队
m_sendMessageQueue.push(msg);
6、消息类:extentionClass\network\message.h
-----------------------------------------------------
关于U3d:
稍微看了一下,登陆页面脚本,在Assets\Scripts\Views,名字居然是DengluView.cs,其他的还没细看,感觉所有的数据都封装成实体类了,在Globals.cs
在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly)的更多相关文章
- react服务端/客户端,同构代码心得
FKP-REST是一套全栈javascript框架 react服务端/客户端,同构代码心得 作者:webkixi react服务端/客户端,同构代码心得 服务端,客户端同构一套代码,大前端的梦想, ...
- Mac下载并编译Google安卓AOSP项目代码
Mac下载并编译Google安卓AOSP项目代码 参考 https://source.android.com/source/index.html 这两天用Mac下载安卓AOSP源码,且把遇到的问题记下 ...
- 在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步
在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步 下载安装 vscode-ftp-sync 插件. 安装方法1. Ctrl+Shift+P 输入 ext install [插件 ...
- mac github工具将命令当下来的代码拖入macgithub中就可以
mac github工具将命令当下来的代码拖入macgithub中就可以,刚開始傻傻的就知道点击那个加入button,总是在当下来的文件夹下创建个文件夹.并且代码不能同步
- alert一般用来调试客户端的javascript代码,以及更好的调试方法
alert一般用来调试客户端的javascript代码 调试利器--console.log 如今主流浏览器(Chrome,IE8及后续版本,FireFox,Opera等)都支持控制台功能. Chrom ...
- github客户端上传代码
在window下安装github客户端上传代码 第一步:创建Github新账户 第二步:新建仓库 第三步:安装Github shell程序,地址:http://windows.github.com/ ...
- 如何:在 DHTML 代码和客户端应用程序代码之间实现双向通信
https://msdn.microsoft.com/zh-cn/library/a0746166 可以使用 WebBrowser 控件向 Windows 窗体客户端应用程序添加现有的动态 HTML ...
- upd套接字服务器与客户端交互C++代码示范
upd套接字服务器与客户端交互C++代码示范 // vc2_2_4UDPserver_Txwtech.cpp : 定义控制台应用程序的入口点. //服务器端 #include "StdAfx ...
- MAC下《暗黑世界》客户端版本编译说明!!
原地址:http://blog.csdn.net/uxqclm/article/details/11970659 2013-09-24 12:02 161人阅读 评论(0) 收藏 举报 目录(?) ...
随机推荐
- 利用ExpandableListView和gridview 显示可展开折叠菜单导航
这篇随身笔带来的是结合聚合数据“菜谱大全”做的一个菜谱可折叠一级+二级列表. 先发来一些截图一睹为快吧. ExpandableListView 可用于折叠型菜单列表,其布局主要通过getGroupVi ...
- Android之图片应用
package com.example.imagescale; import android.os.Bundle; import android.app.Activity; import androi ...
- NSS_01 开始
工作中一直使用asp.net webform, 最近有一个新的小项目, 决定用asp.net mvc3, 边学习边工作吧,记录一下开发过程中的问题,因为工作嘛,只记录问题,可能不会很详细. 准备使用a ...
- ios 数字禁止变成电话号码
1.使用meta来限制页面不转换电话号码 <meta name="format-detection"content="telphone=no"/> ...
- WeX5与阿里内测的Weex与有何纠葛?快来看HTML5开发圈那些逗逼事儿!
4月21日~23日,由infoQ主办的2016 Qcon大会北京站如期举行. HTML5开发已经成为移动开发/前端专题中无可争议的焦点,核心议题已经由前几年的是否该用HTML5转向了如何高性能.高效率 ...
- PHP SQL注入的防范
说到网站安全就不得不提到SQL注入(SQL Injection),如果你用过ASP,对SQL注入一定有比较深的理解,PHP的安全性相对较高,这是因为MYSQL4以下的版本不支持子语句,而且当php.i ...
- 对vector等STL标准容器的排序操作
[+] STL提供的Sort 算法 所有sort算法介绍 sort 中的比较函数 sort 的稳定性 全排序 局部排序 nth_element 指定元素排序 partition 和stable_par ...
- WPF中利用后台代码实现窗口分栏动态改变
在WPF中实现窗口分栏并能够通过鼠标改变大小已经非常容易,例如将一个GRID分成竖排三栏显示,就可以将GRID先分成5列,其中两个固定列放GridSplitter. <Grid Backgrou ...
- CC2640-之功耗
一.测量方式,以DEMO板测量,以消除其它外围不同造成的电流不同. 二.测量结果 以原厂simpleBLEperipheral工程为例 1.如果在低功耗模式下,+5DB发射,最小电流为1.66MA 2 ...
- proguardgui.bat来混淆已有的jar包
1.U:\android-sdk\tools\proguard\bin\找到 proguardgui.bat,双击就可以弹出一个混淆的界面 2.加入不要混淆的,比如我们用的系统的,还有别人的jar 3 ...