• 在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. loginregisterlogo.h                        程序启动的Logo,里面有个动作类,2秒后自动切换场景
        2. loginregisterLayerLogin.h                登录界面
        3. CData.h                                    系统一些操作类,播放音频
        4. extentionClass etworkSocketManager.h    客户端Socket管理类,是个单例. 在startSocket方法里带有服务器地址和端口
        5. extentionClass etworkSocketClient.h    SocketClient 有2个线程,收发消息
        6. Loading.h                                等待UIAlert
        7. headFilezhujieMianhomepage.h            主页, init 的时候发送消息[4500]给服务器,然后起定时器等待服务器回复.
                                                        收到回复后,初始化窗体initTitle,btnsLoading,zhuangtaiLoad
        8. headFilezhujieMianlevelMap.h            clkBuilding 点击某个副本响应事件
        9. headFilezhujieMianpopwindow.h            弹出窗口,点击副本之后调用显示的窗体. buildingpop::fight 发送战斗请求.
        10.FireWork.h                                战斗场景表现类

    -----------------------------------------------------

    登陆流程:

    1、登陆界面:loginregisterLayerLogin.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 etworkSocketManager.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 etworkSocketClient.h

    5.1、消息构造函数:SocketClient::constructMessage

    5.2、消息发送函数:SocketClient::sendMessage_

    //加锁
    MyLock lock(&m_sendqueue_mutex);

    //消息入队        
    m_sendMessageQueue.push(msg);

    6、消息类:extentionClass etworkmessage.h

    -----------------------------------------------------

    关于U3d:

    稍微看了一下,登陆页面脚本,在AssetsScriptsViews,名字居然是DengluView.cs,其他的还没细看,感觉所有的数据都封装成实体类了,在Globals.cs

  • 相关阅读:
    Java8学习笔记(五)--Stream API详解[转]
    Java8学习笔记(四)--接口增强
    Java8学习笔记(三)--方法引入
    JAVA8学习笔记(二)----三个预定义接口
    JAVA8学习笔记(一)----Lambda表达式
    Java基础加强总结(三)——代理(Proxy)
    Java基础加强总结(二)——泛型
    mysql统计表的大小
    jquery异步上传图片
    瀑布流
  • 原文地址:https://www.cnblogs.com/123ing/p/3903114.html
Copyright © 2020-2023  润新知