如今都非常少发3.0过渡篇这一系列的博文了,原因是多方面的,一个是游戏开发进度,尽管上面并没给我什么压力,但我自己一直在赶。还有一方面是个人私生活这块。五月份确实是多事之秋,有时候真的没办法全心思去研究新东西。
有的人肯定会说:那你怎么有时间写《玩转微信...》的博客。

我的回答是理性的:要你管?!
开个玩笑,事实上我对微信公众平台的开发研究不深,写那些也都比較简单, 不用花太多心思(最多耍耍嘴皮子)。更何况还能够将自己之前的学习心得记录下来。免得再过段时间都忘光光~~。

--------
回归正题,Cocos2d-x v3.1 RC0 在今天上午公布,不得不感慨cocos2dx版本号公布之快,假设能够吐槽的话。我仅仅想说:...呵呵...(有人跟我说呵呵表示冷笑的意思)

将最新版本号下载下来后。首先要做的肯定是在cmd下初始化下setup.py这些碗糕(为什么我有一种每周都在和setup.py打交道的错觉?),只是这次不用再又一次设置NDK。SDK。ANT的路径。它都帮你找好了。

也不知道这个功能是3.0rc0就有了还是这个版本号才有的。反正记不清了。

以下进入大家最期待的的打灰机环节。这里用到了Sprite3D这个较新的类,先来看下几个API

/// creates a Sprite3D。创建
static Sprite3D* create(const std::string &modelPath); // creates a Sprite3D. It only supports one texture, and overrides the internal texture with 'texturePath'
static Sprite3D* create(const std::string &modelPath, const std::string &texturePath); //set texture。设置纹理
void setTexture(const std::string& texFile);
void setTexture(Texture2D* texture);

这里的model是一个obj类型的文件,我也是第一次接触这货。总之它有和.png图片配合使用,原理应该相似于plist与png之间的基情关系。

以下開始创建一个3D灰机。我会告诉你灰机的资源是直接从Cocos2dx test的资源里拿的吗?

auto huiJi = Sprite3D::create("boss1.obj");
huiJi->setTexture("boss.png");
huiJi->setPosition(Point(350,350));
huiJi->setScale(20.f);//由于图片比較小,所以这里的放大倍数要大点

效果例如以下:

当然了,既然是3D的,那肯定要来点动作特效吧?这里我认为用旋转的效果最好:

auto rep = RepeatForever::create(RotateBy::create(3,360));
huiJi->runAction(rep);//一直转啊转啊转

效果来了:

恩,为了营造一个文明,健康向上的博客氛围。以上灰机的相关介绍我就先讲到这啦。

既然Sprite3D都出来了,那么RotateBy3D这货果断藏不住了

当然了,事实上并没有RotateBy3D这个类,当前还是用RotateBy来实现3D旋转效果。API例如以下:

static RotateBy* create(float duration, const Vec3& deltaAngle3D);

第一个參数就不用说了,旋转时间嘛。第二个參数的Vec3是什么?哈哈哈哈,我也不知道.......非常明显这个也是3.0rc0后才出来的,等有了解了再分享给大家吧。恩,只是使用方法还是比較easy理解的,看Vec3里的參数例如以下

Vec3(float xx, float yy, float zz)

这里的xx,yy,zz三个參数能够理解成三维坐标里的x。y,z。水平的那条就是x轴,竖直的是y轴,往里面的是z轴。所以假设Vec3的參数是这种Vec3(360,0,0)则表示对象以x方向为轴旋转。

实现例如以下:

auto actionBy1 = RotateBy::create(4, Vec3(360, 0, 0));
huiJi->runAction(actionBy1);

执行效果我就不截图了。大家自己试下就知道。

假设不是要让灰机运动,而是直接给它设置一个旋转角度也一样是能够的,用以下这个API:

virtual void setRotation3D(const Vec3& rotation);

原理和RotateBy3D一样,使用例如以下:

huiJi->setRotation3D(Vec3(90,0,0));

让灰机以x方向为轴旋转90°,效果例如以下:

怕大家误解,这里我在强调一下。RotateBy3D 不仅对Sprite3D创建出来的对象有效,对其它对象也一样有效。如Sprite等。

好了,灰机这个话题我真的不能再继续下去了。

就扯到这吧。

尊重原创。转载请注明来源:

Cocos2dx 3.0 过渡篇(三十)灰机还是3D好(Sprite3D)的更多相关文章

  1. Cocos2dx 3.0 过渡篇(三十一)ValueVector和Vector不得不说的故事

    本文投票地址:http://vote.blog.csdn.net/Article/Details?articleid=37834689 前天看到一个颇为纠结的选择题:有一天你遇到一个外星人,这时外星人 ...

  2. Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)

    昨天练车时有一MM与我交替着练,聊了几句话就多了起来,我对她说:"看到前面那俩教练没?老色鬼两枚!整天调戏女学员."她说:"还好啦,这毕竟是他们的乐趣所在,你不认为教练每 ...

  3. Cocos2dx 3.0 过渡篇(二十八)C++11强类型枚举

    一朋友在微信朋友圈晒了张照片,随手点开大图,带着赞赏的眼光扫了下,恩,几个月不见.又美丽了...咦?等等,她戴的这是什么?酷炫的造型! 金属边框! 微型摄像头! 这不是传说中的谷歌眼镜么?土豪啊,还好 ...

  4. Cocos2dx 3.0 过渡篇(二十九)globalZOrder()与localZOrder()

    前天非常难得的加班到八点...为什么说难得呢?由于平时我差点儿就没加班过.六点下班后想走就走,想留就留.率直洒脱.不拘一格.尽显男儿本色.程序猿,就是这么自信! -----------这篇博客的标题本 ...

  5. Cocos2dx 3.0 过渡篇(二十五)死不了的贪食蛇(触摸版)

    上一篇写的贪食蛇的重力感应控制版,这一篇就讲下触摸控制版吧.额,也不知道写了那个贪食蛇教程究竟有没有获得沈老师的书,假设没有的话,看我不拿西瓜刀砍掉 偶尔E往事 的那啥! 重力版链接:http://b ...

  6. Cocos2dx 3.0 过渡篇(二十七)C++11多线程std::thread的简单使用(下)

    本篇接上篇继续讲:上篇传送门:http://blog.csdn.net/star530/article/details/24186783 简单的东西我都说的几乎相同了,想挖点深的差点把自己给填进去. ...

  7. 1、Cocos2dx 3.0游戏开发三找一小块前言

    尊重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27094663 前言 Cocos2d-x 是一个通用 ...

  8. Cocos2dx 3.0 交流篇

    创建项目: For(MAC) Runtime Requirements Android 2.3 or newer iOS 5.0 or newer OS X 10.7 or newer Windows ...

  9. Cocos2dx3.0过渡篇 globalZOrder()与localZOrder()

    这篇博客的标题本想叫“...3.0新的渲染...介绍”,最后还是拉不下这个脸.为啥?觉得自己对渲染的认识还是过于表面,谈不上理解.当然了,这并不影响这篇博客继续写下去.下面看一段3.0Release ...

随机推荐

  1. 基于visual Studio2013解决C语言竞赛题之1009补数

         题目 解决代码及点评 /************************************************************************/ ...

  2. BNU Questions and answers

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=2490 这个题是先输入一个整数n,说明有几个数据,然后输入n个整数,然后用三个#分开,后面输入整数k, ...

  3. IT忍者神龟之Oracle DBA经常使用查询吐血列举

    –1. 查询系统全部对象 select owner, object_name, object_type, created, last_ddl_time, timestamp, status from ...

  4. jqGrid笔记@简单实现

    jqGrid在MVC中的版本是已经通过 HtmlHelper 的扩展方法封装后的产物,webForm版本貌似也将其封装成了服务器端空间,所以我推荐下载原生的jqGrid版本的地址为:http://ww ...

  5. VS2010对C++11的支持列表(感觉大部分都不支持)

    c++11,就是之前的c++0x,已经成为了最新的c++标准.像咱这样天天用c++的,就赶紧follow一下.学习成果,放在这里,不说分享,至少自己增强下记忆. 首先,给出一些有用的链接. http: ...

  6. 为进度条增加“伪进度条”?(使用QEventLoop和QTimer)

    在实际开发中,可能会遇到这样的场景:“一个操作非常耗时,但却无法获取其进度百分比”.造成这种情况的原因可能有: 1)该操作属于第三方库(泛指我们使用但无法修改的第三方代码,因此质量有高有底),可能由于 ...

  7. 开始着手Oracle中Scott用户的管理系统

    准备好长时间,一直想把最近所学用于实践,正好想到Oracle的Scott用户的表设计还算合理,且自己也很熟悉,现将整个系统的架构设定如下: 1.数据库不用说,Oracle 11g 的 Scott 用户 ...

  8. MySQL里求给定的时间是所在月份的第几个礼拜

    Share 一个昨天写的函数. 目的是求给定的时间是所在月份的第几个礼拜. DELIMITER $$ USE `t_girl`$$ DROP FUNCTION IF EXISTS `weekofmon ...

  9. Mac&iOS Socket

    链接地址:http://geeklu.com/2012/01/macios-socket/ Geeklu 登录 1 Recommend 7 分享 按评分高低排序   加入讨论...         振 ...

  10. [置顶] DX报表的开发流程(1)

    DevExpress.XtraReports简称为DX报表. 本文主要介绍下VS2010项目中如何开发DX报表,具体的内容包括: (1)下载安装 (2)报表文件创建 (3)页面文件的创建 (4)页面的 ...