搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Cocos2d-x 3.X手游开发实例详解
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121239984
  • 作      者:
    于浩洋著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2014
收藏
编辑推荐
  

  《Cocos2d-x 3.X手游开发实例详解》看点:
  以Cocos2d-x V3.0为框架全面讲解手游开发的知识和方法
  以热门游戏2048、卡牌为例,完整再现手游的开发过程
  Cocos2d-x作者之一林顺和泰然网创始人杨雍力荐
  知识点深入浅出,实例丰富,代码完备
  线上交流平台,及时答疑解惑

展开
作者简介

  于浩洋,曾就职于阿里巴巴、人人网,从事多年互联网产品开发工作。守望科技工作室创始人,我博轻游科技有限责任公司CTO,参与主导多款卡牌手游的开发与发行,有丰富的手游开发经验。

展开
内容介绍

  《Cocos2d-x 3.X手游开发实例详解》以Cocos2d-x V3.0 系列版本为框架,通过实例讲解手机游戏的开发知识和方法,着重通过实例提高读者的开发动手能力。涉及的内容包括:环境搭建、交叉编译以及打包部署;Cocos2d-x数据类型和基本概念的使用,如场景、导演、精灵等;使用Cocos2d-x 创建用户界面,如文本、菜单、滚动框等基本控件,以及一些扩展控件的使用;使用Cocos2d-x 创建动作,比如让精灵移动、跳跃、旋转,以及如何创建按顺序或同时进行的动作;使用Cocos2d-x 播放、停止、暂停、继续播放背景音乐和音效;Cocos2d-x 使用的触摸事件机制;在游戏中存储数据的几种方式;使用HTTP、Sockets、WebSockets 进行网络编程;在游戏中使用物理引擎Box2D、使用瓷砖地图、使用CocosBuilder 制作游戏界面等;Cocos2d-x 中的纹理和动画。最后通过两个完整的游戏开发实例讲解使用Cocos2d-x 开发游戏的全过程。
  《Cocos2d-x 3.X手游开发实例详解》实例丰富,代码完备,知识点清晰简洁。《Cocos2d-x 3.X手游开发实例详解》所有实例均提供完整代码下载,书后附有代码清单概要,非常方便读者查找使用。此外作者还将Cocos2d-x 3.X 各版本间的区别用实例做了详细说明,且将在博客不断更新。
  《Cocos2d-x 3.X手游开发实例详解》适合对Cocos2d-x 感兴趣及有志于学习和从事移动平台游戏开发的读者阅读参考。

展开
精彩书评

  手游是个很有前景的行业,同时也是个竞争异常激烈的行业。为了在竞争中立于不败之地,必须有可靠先进的技术和技术人才。此书以Cocos2d-x 3.0为基础,从入门知识到高级进阶,详细讲解了手游开发的十几个大模块,每个大模块又包含了许多小的知识点,是提高技术水平不可多得的一本书。
  ——林顺
  触控科技高级技术总监,Cocos2d-js作者



  本书是由从业多年的开发者于浩洋所著,多年的互联网巨头从业经验使得作者形成了比较扎实的知识体系。书中对基础知识娓娓道来,同时全书包括多个实例讲解。大量的实例,让所有知识深入浅出,不论你是有从业经验的中级开发者还是初次使用Cocos2d-x的小白用户,本书都是不错的选择。
  ——杨雍
  泰然网创始人,Cocos2d-x技术推广总监

展开
精彩书摘

  14.7  添加战斗流程
  战斗是卡牌游戏的灵魂,有了喜欢的英雄,给英雄装备一套好的装备,这时不拿出来用用多没意思啊!战斗让你的英雄久经沙场,变得更强更伟大。该游戏中的战斗流程是,单击战争菜单,首先进入世界地图,如图14-5所示,单击世界地图上的某个势力范围,进入该势力范围的推图,再单击其中一个推图进入战斗场景。
  世界地图通过GameMapLayer实现。在GameMapLayer初始化中,添加一个ScrollView,用来滚动显示隐藏的地图:
  ui::ScrollView* dragPanel = ui::ScrollView::create();
  设置dragPanel的大小为窗口大小:
  Size widgetSize =Director::getInstance()->getWinSize();
  dragPanel->setSize(widgetSize);
  设置dragPanel的内容大小为640×1920:
  Size backgroundSize = Size(640,1920);
  dragPanel->setInnerContainerSize(backgroundSize);
  设置位置添加到场景中:
  dragPanel->setPosition(ccp((widgetSize.width - backgroundSize.width) / 2, (widgetSize.height - backgroundSize.height) / 2 +
  (backgroundSize.height - dragPanel->getContentSize().height) / 2));
  m_pLayer->addChild(dragPanel);
  世界地图是用CocosStudio制作的UI,这里省略详细的制作过程,因为上一个实例已经详细讲解了CocosStudio怎制作UI。我们把UI添加到dragPanel中:
  Layout* map_root = dynamic_cast(GUIReader::shareReader()->widgetFromJsonFile("GameMapLayer_1.json"));
  dragPanel->addChild(map_root);
  然后定义一个数组,代表势力范围的名称:
  string str[21] = {"yananfu","shijiachun","shimiao","yezhulin", "changzhou","hunxian","erlongsan","qingzhou","jiangzhou","liangsan","zhujiazhuang","beijing","chengtou","dongpingfu","dongjing","liangsan","jizhou","shuzhou","hangzhou","guanfu"};
  通过一个for循环遍历UI地图中的Button,并为Button添加名称和回调函数:
  for (unsigned int i = 0; i<20; ++i)
  {
  Button* button = (Button*)(map_root->getChildByTag(i));
  button->setTitleFontSize(32);
  button->setTitleColor(Color3B(255,0,0));
  button->setTitleText(str[i].c_str());
  button->addTouchEventListener(this,toucheventselector (GameMapLayer::buttonTouchEvent));
  }
  在回调函数buttonTouchEvent中,先获取单击Button的tag和现在的等级:
  voidGameMapLayer::buttonTouchEvent(Ref *pSender, TouchEventType type)
  {
  Size winSize =Director::getInstance()->getWinSize();
  Sprite *bg=Sprite::create("tipbg.png");
  Button* pHome=(Button*)pSender;
  int tag=pHome->getTag();
  int level=GameData::shareGameData()->mlevel;
  switch (type)
  {
  case TOUCH_EVENT_BEGAN:
  break;
  case TOUCH_EVENT_MOVED:
  break;
  case TOUCH_EVENT_ENDED:
  ....进行操作....
  break;
  case TOUCH_EVENT_CANCELED:
  break;
  default:
  break;
  }
  }
  然后在TOUCH_EVENT_ENDED中判断等级是否大于等于tag*5-10,如果是就进入推图场景:
  if(level>=tag*5-10)
  {
  FightLayer *info=new FightLayer(tag);
  addChild(info);
  }
  这时,运行程序,单击世界地图中最上面的势力,进入推图场景,如图14-6所示。
  ……

展开
目录

第1章  准备
1.1  Cocos2d-x简介
1.2  Cocos2d-x架构和目录结构
1.3  环境搭建
1.3.1  Windows开发环境搭建
1.3.2  Mac开发环境搭建
1.3.3  创建新项目
1.3.4  在Android上调试项目
1.3.5  打包APK文件
第2章  Cocos2d-x常用数据和方法
2.1  C++数据类型
2.2  Cocos2d-x封装的数据类型
2.2.1  布尔型Bool的使用
2.2.2  整型Integer的使用
2.2.3  浮点型Double、Float的使用
2.2.4  字符串String的使用
2.2.5  数组Array的使用
2.2.6  点Point的使用
2.2.7  尺寸Size的使用
2.2.8  矩形Rect的使用
2.2.9  字典Dictionary的使用
2.3  常用宏定义
2.3.1  数学相关宏的使用
2.3.2  断言宏CCAsset的使用
2.3.3  数组遍历宏CCARRAY_FOREACH和CCARRAY_FOREACH_REVER SE的使用
2.3.4  字典遍历宏CCDICT_FOREACH的使用
2.3.5  对象创建方法宏CREATE_FUNC的使用
2.3.6  属性定义宏CC_PROPERTY的使用
2.3.7  命名空间宏
2.4  Cocos2d-x中的坐标和坐标系
2.4.1  OpenGL坐标系和屏幕坐标系
2.4.2  锚点和位置的使用
2.4.3  节点坐标系和世界坐标系的相互转换
第3章  Cocos2d-x核心概念
3.1  基础节点
3.1.1  Node简介
3.1.2  Node应用举例之移除节点
3.2  相机
3.2.1  相机简介
3.2.2  使用CCCamera循环缩放点
3.3  导演
3.3.1  导演Director简介
3.3.2  Director常用功能举例
3.4  场景
3.4.1  场景定义
3.4.2  创建显示战斗场景
3.4.3  动态切换多个场景
3.5  布景
3.5.1  布景定义
3.5.2  使用Layer模拟Windows Phone主界面
3.6  精灵
第4章  Cocos2d-x用户界面
4.1  文本渲染
4.1.1  制作fnt格式字体
4.1.2  使用LabelBMFont显示文本
4.1.3  使用LabelTTF显示文本
4.1.4  使用LabelAtlas显示文本
4.2  菜单
4.2.1  菜单和菜单项的简单使用
4.2.2  使用菜单制作游戏菜单功能
4.3  滚动框
4.3.1  使用ScrollView显示多页内容
4.3.2  监听ScrollView的滚动和缩放事件
4.3.3  使用TableView展示多页内容
4.3.4  触摸TableView里的菜单来滚动TableView
4.4  扩展控件
4.4.1  滑动条控件ControlSlider
4.4.2  开关控件ControlSwitch
4.4.3  取色器控件ControlColourPicker
4.4.4  电位计控件ControlPotentiometer
4.4.5  步进器控件ControlStepper
4.4.6  按钮控件ControlButton
4.4.7  Scale9Sprite
4.5  使用编辑框制作用户登录界面
......

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证