开源手游,暗黑世界客户端基于Cocos2d-x 2.1.4,详情:http://www.9miao.com/thread-42811-1-1.html

接上篇博客:http://blog.csdn.net/wangqiuyun/article/details/11234467

介绍登录之后
-------------------------------------------------------------------------------------
//登录场景
loginregister\LayerLogin.h

1.1、LayerLogin::receiveLoginData()
//接收到登录返回数据
//如果有角色:
this->schedule(schedule_selector(LayerLogin::sendPersonalData), 0.2);
//没角色:
CCLayer *slayer=startAnimate::create();

1.2、LayerLogin::sendPersonalData()
this->schedule(schedule_selector(LayerLogin::receivePersonalData), 0.2);

1.3、LayerLogin::receivePersonalData()
//点击开始按钮
pMenuItemStart->setTarget(this, SEL_MenuHandler(&LayerLogin::menuItemCallbackStart));

1.4、LayerLogin::menuItemCallbackStart()
homePage * homePage = homePage::create();

-------------------------------------------------------------------------------------
//创建角色
loginregister\startAnimate.h

startAnimate::callbackSelectRole()
CCLayer *xr=xuanren::create();

-------------------------------------------------------------------------------------
//选人
loginregister\xuanren.h

1.1、xuanren::EnterName()
CCMenuItemImage * sure=CCMenuItemImage::create("common_btn_ok_1.png", "common_btn_ok_2.png", "common_btn_ok_3.png", this, menu_selector(xuanren::replacScene));

1.2、xuanren::replacScene()
this->schedule(schedule_selector(xuanren::receiveRoleInfo),0.2);

1.3、xuanren::receiveRoleInfo()
this->schedule(schedule_selector(xuanren::receiveHomeInfo), 0.2);

1.4、xuanren::receiveHomeInfo()

1.5、this->enterHomePage();
CCScene *homePage=CCScene::create();//homepage  beginAni

-------------------------------------------------------------------------------------
//主页
headFile\zhujieMian\homepage.h

1.1、homePage::init()
//init 的时候发送消息[4500]给服务器,然后起定时器等待服务器回复.
SocketManager::getInstance()->sendMessage(json_file_jianghu.c_str(), 4500);
this->schedule(schedule_selector(homePage::rec_4500));

1.2、homePage::rec_4500()
//收到回复后,初始化窗体initTitle,btnsLoading,zhuangtaiLoad
this->initTitle();//加载标题
this->btnsLoading();//加载中部按钮
this->zhuangtaiLoad();//加载状态栏
this->downBtnLoading();//加载底部按钮

1.3、homePage::initTitle()
//加载标题,目前什么也没做

1.4、homePage::btnsLoading()
//加载中部按钮,即关卡
layerMainMap= LevelMap::create();

1.5、homePage::zhuangtaiLoad()
//加载状态栏
zhuangtai1 =zhuangtai::create();

1.6、homePage::downBtnLoading()
//加载底部按钮
btnHeCheng = CCMenuItemImage::create("zjm_hc_1.png", "zjm_hc_2.png", this, menu_selector(homePage::openHeCheng));
btnEmployFriends = CCMenuItemImage::create("zjm_employfriends_1.png", "zjm_employfriends_2.png", this, menu_selector(homePage::employFriends));
CCMenuItemImage *btnPersonal = CCMenuItemImage::create("zjm_personal_1.png", "zjm_personal_1.png", this, menu_selector(homePage::openPersonal));
linkFecharge = CCMenuItemImage::create("zjm_linkrecharge_1.png", "zjm_linkrecharge_2.png", this, menu_selector(homePage::recharge));
btnMail = CCMenuItemImage::create("zjm_mail_1.png", "zjm_mail_2.png", this, menu_selector(homePage::openMailWindow));
btnArena = CCMenuItemImage::create("zjm_arena_1.png", "zjm_arena_2.png", this, menu_selector(homePage::openArenaWindow));
homeLink = CCMenuItemImage::create("zjm_linkhome_1.png", "zjm_linkhome_2.png", this, menu_selector(homePage::mainView));

-------------------------------------------------------------------------------------
//状态栏
headFile\zhujieMian\zhuangtaiLoad.h

zhuangtai::init()
//获取玩家数据
char * json=CData::getCData()->getSendVal();
//设置显示玩家数据
coin=data["coin"].asInt();//货币
__coin=coin;
gold=data["yuanbao"].asInt();//金子、
level=data["level"].asInt();//等级
Exp=data["exp"].asInt();//当前经验
 maxExp=data["maxexp"].asInt();//最大经验
gas=data["gas"].asInt();//气
power=data["gas"].asInt();//力量

-------------------------------------------------------------------------------------
//中部副本按钮,即选关卡
headFile\zhujieMian\levelMap.h

1.1、LevelMap::init()
//点击事件
CCMenuItemSprite* leveltmp = CCMenuItemImage::create("zjm_building_1.png", "zjm_building_1.png", "zjm_building_2.png",this, menu_selector(LevelMap::clkBuilding));
//滚动,适应地图,绑定关卡数据
adjustMap(true)

1.2、LevelMap::adjustMap()
//CData::getCData()读取本关数据
MapItem* tmpLevelItemData = NULL;
tmpLevelItemData = CData::getCData()->getConfigOfMapLevel(offlevel + i);
//判断本关是否可玩
if(tmpLevelItemData->bid > currentLevelId)
{
    tmp->setEnabled(false);
}
else
{
    tmp->setEnabled(true);
}
//绑定本关数据      
tmp->setUserObject(tmpLevelItemData);

1.3、LevelMap::clkBuilding()
//获取关卡信息,然后展示关卡信息
MapItem *item = (MapItem*)building->getUserObject();
//buildingpop在popwindow.h
buildpop = buildingpop ::create();
this->getParent()->addChild(buildpop,100);
buildpop->show(item);

-------------------------------------------------------------------------------------
CData.h
//获取关卡信息,单例
CData::getCData()
//获取关卡信息
MapItem* CData::getConfigOfMapLevel(int levelid)
//读取配置文件
string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("map.json");
return (MapItem*)m_config_map_level_dic->objectForKey(levelid);
//MapItem对应map.json记录如下:
{"dropicon":"\r","yid":0,"coin":248,"mconfig":[100001],"name":"阿卡拉的试炼","levelrequired":0,"resourceid":0,"scene":1000,"dropid":1,"priority":0,"exp":124,"icon":5000,"quality":1,"id":1000,"desc":"打败佣兵向阿卡拉证明你的实力"}

-------------------------------------------------------------------------------------
headFile\zhujieMian\popwindow.h

//展示关卡数据
1.1、buildingpop::show(MapItem *item)
this->item = item;

1.2、buildingpop::init()
//关闭按钮
cl=CCMenuItemImage::create("common_btn_close_1.png", "common_btn_close_2.png",this, menu_selector(buildingpop::close));
//布阵按钮
bz = CCMenuItemImage::create("popbuilding_buzhen_1.png", "popbuilding_buzhen_2.png",this, menu_selector(buildingpop::buzhen));
//战斗按钮
ft = CCMenuItemImage::create("popbuilding_fire_1.png", "popbuilding_fire_2.png","popbuilding_fire_3.png", this, menu_selector(buildingpop::fight));
//关闭
1.3、buildingpop::close()   
this->hide();

1.4、buildingpop::buzhen()
//布阵,调用父层布阵函数
((homePage*)(this->getParent()))->openNewBuZhen();
//移除本层
this->removeFromParent();

1.5、buildingpop::fight()
//点击战斗,显示加载层
load=Loading::create();
//玩家编号
root["characterId"]=CData::getCData()->getCharactorId();

//关卡编号
root["zjid"]= this->item->bid;
//提交关卡及玩家数据,发送战斗请求,
SocketManager::getInstance()->sendMessage(json_file_zhandou.c_str(), 4501);
//定时器,每隔0.2秒调用receiveFireData检测一下是否接收到返回数据,如果接收到则取消定时器
this->schedule(schedule_selector(buildingpop::receiveFireData),0.2);

1.6、buildingpop::receiveFireData()
//接收战斗返回的数据,4501表示战斗
Message *revMsg=(Message *)CData::getCData()->m_dictionary->objectForKey(4501);

//返回的数据
char* data=revMsg->data;
//数据格式,结果以及评星数都已经确定
{"data": {"setData": {"huoli": -1, "item": [53000001], "coin": 248, "star": 3, "exp": 124}, "battleResult": 1, "stepData": [{"chaBattleId": 15, "enemyChaArr": [{"enemyBattleId": 25, "enemyChaId": 101, "enemyActionId": 96, "enemyChangeHp": -64, "enemyBuff": 0, "enemyCurrentHp": 2, "enemyTotalHp": 2}], "chaBuff": 0, "chaExpendHp": 0, "chaId": 1000003, "txtEffectId": 0, "actionId": 99, "chaCurrentHp": 56, "chaTotalHp": 56, "skill": 100006}], "startData": [{"chaBattleId": 15, "chaName": "123", "chaPos": 5, "chaLevel": 1, "chaDirection": 1, "chaIcon": 1, "chaCurrentHp": 56, "chaTotalHp": 56, "chaId": 1000003}, {"chaBattleId": 25, "chaName": "\u4f63\u5175", "chaPos": 5, "chaLevel": 1, "chaDirection": 2, "chaIcon": 6048, "chaCurrentHp": 2, "chaTotalHp": 2, "chaId": 101, "chaPz": 1}]}, "message": "", "star": 3, "result": true}    
CData::getCData()->m_dictionary->removeObjectForKey(4501);
//停止定时器
this->unschedule(schedule_selector(buildingpop::receiveFireData));
//进入战斗界面
CCScene *scene=Fire::scene();
//移除加载层
load->removeFromParent();

-------------------------------------------------------------------------------------
//战斗场景
FireWork.h

先写到这,后续!!!

开源手游暗黑世界客户端部分代码注解续相关推荐

  1. [官方教程] 暗黑世界 客户端 配置文档

    原地址:http://blog.csdn.net/uxqclm/article/details/11970565 欢迎来到9秒:www.9miao.com 暗黑世界----客户端文档 iOS: 1.配 ...

  2. 狂妄之人怎么用计算机弹,天谕手游狂妄之人乐谱代码分享

    天谕手游狂妄之人乐谱代码是什么?狂妄之人是游戏"传说之下"(undertale)主题曲中的一个,当玩家控制的人物走了屠杀线遇到sans的时候会触发的背景音乐.接下来小编为大家带来了 ...

  3. 计算机音乐谱牵丝戏,《天谕手游》牵丝戏乐谱代码分享-天谕云之光在哪

    <天谕手游>牵丝戏乐谱代码分享 天谕手游牵丝戏乐谱?在游戏内很多玩家都想知道,牵丝戏乐谱的代码是什么,毕竟有了代码演奏十分的方便.接下来就让小编给大家带来<天谕手游>牵丝戏乐谱 ...

  4. 权御天下计算机音乐数字乐谱,天谕手游权御天下乐谱代码是什么-天谕手游权御天下乐谱代码分享_快吧手游...

    天谕手游权御天下乐谱代码是什么?天谕中我们可以使用外部代码复制到游戏中,然后制作出自己的音乐乐谱.很多小伙伴都想把这一首歌写进自己的天谕乐谱.下面就一起来看看吧! 天谕手游权御天下乐谱代码分享 A轨 ...

  5. 计算机音乐谱红昭愿,天谕手游红昭愿乐谱代码是什么-天谕手游红昭愿乐谱代码分享_快吧手游...

    天谕手游红昭愿乐谱代码是什么?天谕中我们可以使用外部代码复制到游戏中,然后制作出自己的音乐乐谱.很多小伙伴都想把这一首歌写进自己的天谕乐谱.下面就一起来看看吧! 天谕手游红昭愿乐谱代码分享 t115v ...

  6. 计算机音乐谱棠梨煎雪,天谕手游棠梨煎雪乐谱代码分享

    天谕手游棠梨煎雪乐谱代码是什么?<棠梨煎雪>是一首由银临演唱的原创古风歌曲,收录于专辑<腐草为萤>中.接下来小编为大家带来了天谕手游棠梨煎雪乐谱代码分享,希望可以帮助到大家. ...

  7. 计算机音乐谱红昭愿,天谕手游红昭愿乐谱代码分享

    天谕手游红昭愿乐谱代码是什么?<红昭愿>是来自音阙诗听音乐社的一首歌曲,由荒唐客填词,殇小谨谱曲,朱鸽编曲,由音阙诗听歌手王梓钰演唱,2020年9月24日,发行了由李玉刚演唱的<红昭 ...

  8. 在MAC下调试运行暗黑世界客户端及部分代码注解(基于Firefly)

    目前有两个客户端,一个基于cocos2d-x.一个基于unity3d,这两个客户端的调试运行官网也有相关教程,我这是基于我自己的mac环境调试运行的. 一.先是基于coco2d-x的客户端 1.最快的 ...

  9. 在MAC下调试运行暗黑世界客户端及部分代码注解

    一.先是基于coco2d-x的客户端 1.最快的方式是,先在mac安装xcode,我这用xcode4.6,然后下载cocos2d-x安装包,我这用2.1.5,直接解压到documents得到cocos ...

最新文章

  1. 【驱动】GPIO 作为按键时的 设备树 配置
  2. 心得丨深度学习的技术原理、迭代路径与局限
  3. iOS进阶之协议Protocol(13)
  4. 不放弃WM,依旧开发WM应用
  5. java 相对路径 文件读取,Java相对路径读取文件
  6. 在线进行 PCoA 分析和相关统计检验
  7. 检验例题_高一化学微课之81氨气的制备和铵根离子的检验
  8. JavaScript中call,apply,bind方法的总结
  9. 定时任务发展史(二)
  10. php 循环左移,PHP运算符、PHP分支结构和循环、模板语法在模板中的应用
  11. 求一元二次方程的实根或虚根
  12. Python实现求中位数
  13. DirextX7。0 SDK 在VC 6.0 环境中使用的注意事项
  14. 在Oracle中使用脏读,ORACLE 事务处理
  15. 中国首份国际贸易企业信息化发展白皮书发布,小满科技后劲十足
  16. hihocoder01串
  17. android开发中如何判断手机中存在的sim卡数量?
  18. Liunx下Nginx安装配置
  19. 计算机软件优化,系统优化
  20. English Learning - Day23 作业打卡 2022.12.29 周四

热门文章

  1. 快传号可以搬运吗,快传号搬运哪些领域容易爆文
  2. 软件测试基础学习 - Linux文件及文件内容查找命令总结
  3. 【Linux】U-Boot启动文件start.S详解(超详细讲解,上篇)
  4. 任意列+左右两列等高布局,并要求有最小高度
  5. ppt护理文书流程图_病案管理试题及答案
  6. 原版XP合集,非BT下载
  7. java+ssm驾校管理教练用户驾校系统@ssm
  8. 好看更好玩的vivo S12 Pro,越用越顺手
  9. 2017年1月手机分析报告
  10. VLDB2017论文阅读-Cohort Query Processing