
cocos2d
文章平均质量分 67
bill_man
从事手机游戏开发,喜欢钻研技术,努力成为优秀的程序员
展开
-
cocos2d-x游戏实例(12)-实时拖动主角移动
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man上一篇讲解了记录拖动的路径并使主角按照此路径移动的cocos2d-x实现。这篇讲解另一个操作方式,这种方式在纵版射击游戏中有不少的实现,就是触屏拖动主角实时移动,也就是说没有上一节那个记录路径然后主角再移动的过程,主角是随你的手指移动的,之原创 2012-03-08 22:17:19 · 8731 阅读 · 2 评论 -
cocos2d-x游戏实例(25)-简易动作游戏(3)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man本篇进行垂直方向上的碰撞检测,测试的方法就是把主角的初始高度设高,让主角落至地面:来看判断垂直方向的碰撞的函数playermapvcollision:前面几句是获得主角的位置和宽高以及获得地图,然后通过如下几句获得主原创 2012-04-14 18:35:24 · 6467 阅读 · 0 评论 -
cocos2d-x游戏实例(26)-简易动作游戏(4)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man继续上一篇的简易动作游戏,本篇加入主角的跳跃,以及在跳跃过程中的碰撞检测,在动作游戏中跳跃是很重要的部分,首先来看效果:首先是需要在操作的部分作修改,首先来看ccTouchesBegan函数的修改:在之前对x轴运动的原创 2012-04-14 21:10:44 · 7333 阅读 · 4 评论 -
cocos2d-x游戏实例(27)-简易动作游戏(5)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man继续简易动作游戏实例,本篇加入小怪并且加入小怪与主角的碰撞检测,效果如下:首先在场景的初始化函数中加入小怪的精灵,并设置位置与锚点:enemy = CCSprite::spriteWithFile("SpinningPeas.png");map->原创 2012-04-21 21:56:14 · 7896 阅读 · 1 评论 -
cocos2d-x游戏实例(28)-简易动作游戏(6)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man本篇继续简易动作游戏实例,本篇加入简单血量条ui,效果如下:可以看到在左上角加入了一个显示血条的ui,是两条线宽不同的直线叠加的效果,首先声明了一个UILayer类,该类继承自CCLayer,使用其中的draw函数来绘制形状,该类的声明如下:除了初原创 2012-04-22 11:49:00 · 15065 阅读 · 9 评论 -
cocos2d-html5初探学习笔记(1)-配置环境
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man期盼已久的cocos2d-html5版本终于在日前发布了alpha版本,从本篇文章开始我将我的自学cocos2d-html5历程与大家分享。本篇介绍配置环境,为什么需要配置环境呢,这是由于浏览器的一些限制,浏览器禁止在本地访问诸如XMLHttpRe原创 2012-06-16 10:43:45 · 23424 阅读 · 5 评论 -
cocos2d-x初探学习笔记(29)-cocosBuilder
cocosBuilder编辑器正是作为可视化编辑的补充,成为cocos2D-iphone和cocos2D-x的可视化编辑器,cocos2D-x从2.0版本开始支持cocosBuilder,同样cocosBuilder也是2.0版本与之对应,本篇来就介绍cocoBuilder编辑器的使用和将cocosBuilder工程倒入到cocos2D-x的程序工程里。 可以通过cocosBuild原创 2012-09-15 10:27:34 · 30708 阅读 · 13 评论 -
cocos2d-x初探学习笔记(30)2.1新特性之CCClippingNode
从本篇起介绍一些cocos2d-x的新功能,包括CocosBuilder动画等功能,还包括从2.1版本添加的一些新特性,本篇文章就介绍一下2.1中我非常喜欢的一个新特性--可以根据一个模板切割图片的节点--CCClippingNode。这个类提供了一种不规则切割图片的方式,在这种方式以前,我们可以使用纹理类自带的setTextureRect函数来切割矩形区域,这种方式就像是J2me的setClip原创 2013-01-13 17:05:16 · 25226 阅读 · 8 评论 -
cocos2D-x初探学习笔记(31)2.1新特性CCPhysicsSprite
本篇文章继续介绍cocos2D-x 2.1的新特性:CCPhysicsSprite 和CCPhysicsDebugNode,从名称上就可以看出来这两个类是和物理引擎相关的类,和之前介绍的CCDrawNode一样,CCPhysicsSprite 没有提供新功能,而是对之前功能的一个封装。CCPhysicsSprite 定义一个物理类绑定的精灵,它继承自CCSprite精灵类,它的使用来看一下Test原创 2013-01-20 16:32:30 · 14284 阅读 · 1 评论 -
cocos2D-x初探学习笔记(32)-cocos2d-x & javascript跨平台初体验
近日,cocos2d家族开始了版本的联合发布,也就是说从cocos2d-x的2.1版本开始,终于可以实现广大开发者期盼已久的一套代码横跨ios,android和html5的梦想了,这次联合发布的包括cocosBuilder,cocos2d-iphone,cocos2d-x和cocos2d-html5版本,这篇文章就是笔者对这套开发工具的初体验经验总结。使用的是第二次联合发布的cocos2d-x的2原创 2013-02-14 01:33:41 · 25843 阅读 · 5 评论 -
cocos2d-x游戏实例(24)-简易动作游戏(2)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man继续上一篇动作游戏的实例,加入左右边界的碰撞,效果如下:左右边界的碰撞,需要借助到地图中的图素的属性部分鼠标右键属性,加入collion属性(自己定义的名字),并把属性的值设置为2,这样我们在我们的程序中获得属性后我原创 2012-04-12 22:08:33 · 8595 阅读 · 1 评论 -
cocos2d-x游戏实例(23)-简易动作游戏(1)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man从本篇开始,开始一个简单的动作类游戏的实例,本篇介绍基本场景的构建和搭建,效果如下:就是简单的显示地图和主角,并且主角移动,并移动相应的视角,首先来看场景初始化的函数init,代码如下:首先是定义一个背景,我们使用的原创 2012-04-04 17:37:50 · 13222 阅读 · 6 评论 -
cocos2d-x游戏实例(20)-纵版射击游戏(7)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man上一篇我们为敌人加上了运动轨迹并且敌人可以重复出现,本篇继续上一篇的内容,给敌人加入发射子弹的功能,效果如下:原创 2012-03-25 15:12:31 · 4813 阅读 · 2 评论 -
cocos2d-x游戏实例(21)-纵版射击游戏(8)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man上一篇为敌人添加了子弹,本篇为主角添加受伤并添加表示主角血量的ui,首先来看效果图: 首先可以注意到左下角表示出了主角的血量,实现的代码如下:就是为定义三个基于这原创 2012-03-26 22:04:21 · 4884 阅读 · 4 评论 -
cocos2d-x游戏实例(14)-纵版射击游戏(1)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man从本篇开始,实现一个简单的纵版射击游戏,本篇先简单搭建一个简单的主角飞机移动的例子。首先看实现效果本篇就简单实现一个主角在星空中移动的例子,并且用之前介绍过的拖动主角移动的方法来移动主角,首先要在场景的构造函数中添加如下这句:C原创 2012-03-10 23:24:06 · 15092 阅读 · 10 评论 -
cocos2d-x游戏实例(15)-纵版射击游戏(2)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man上一篇介绍了纵版射击游戏的基本的搭建,本篇进一步完善,我们继续完善我们的游戏,首先,在纵版射击游戏中,我们有很多游戏元素,包括主角,子弹,敌人等,我们首先把所有的这些定义一个基类GameSprite,定义如下:我们的每个游戏原创 2012-03-10 23:27:22 · 7501 阅读 · 9 评论 -
cocos2d-x游戏实例(16)-纵版射击游戏(3)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man上一篇搭建了纵版射击游戏游戏对象的简单结构,即所有游戏的对象(子弹,敌人,主角)继承于同一个类,本篇将会进一步完善这个游戏,加入主角移动时的残象和敌人的碰撞;1.主角移动的残象在我们移动主角的时候,加入一个“影子”的效果,可以感觉主原创 2012-03-13 21:36:36 · 8718 阅读 · 2 评论 -
cocos2d-x游戏实例(22)-纵版射击游戏(9)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man继续上一篇的纵版射击游戏,本篇加入几个敌人的类型,效果如下: 我加入5种类型的敌人,分别为对原创 2012-04-02 18:02:50 · 7818 阅读 · 5 评论 -
cocos2d-x游戏实例(17)-纵版射击游戏(4)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man继续上一篇的纵版射击游戏,本篇讲解加入子弹,效果如下 子弹是射击游戏中很重要的一部分,我们需要创建子弹原创 2012-03-18 10:45:57 · 5846 阅读 · 3 评论 -
cocos2d-x游戏实例(18)-纵版射击游戏(5)
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man继续上一篇的纵版射击游戏,本篇加入子弹逻辑,和敌人的碰撞及爆炸特效,效果如下: 首先看一下如何加入子弹逻辑,上一篇我们已原创 2012-03-18 10:49:14 · 6515 阅读 · 8 评论 -
cocos2d-x初探学习笔记(4)--触屏事件
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.youkuaiyun.com/bill_man1.场景触屏一般在菜单中,不是继承自CCLayer,这时候要检测触屏,就需要两步就可以完成第一步:setIsTouchEnabled(true);这句话在类初始化的时候加入第二步:重写相应的函数:ccTouchesBegan原创 2012-01-24 14:26:00 · 36134 阅读 · 17 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(2)----QUAD_COMMAND
个人原创,欢迎转载,转载请注明原文地址http://blog.youkuaiyun.com/bill_man 上一篇文章介绍了cocos2d-x的基本渲染结构,这篇顺着之前的渲染结构介绍渲染命令QUAD_COMMAND命令的部分,通过这部分的函数,学习opengl处理图片渲染的方法,首先介绍这节需要涉及到的基本概念VAO和VBO。VAO和VBO: 顶点数组对象(Vertex Array O原创 2014-07-31 11:18:23 · 10639 阅读 · 7 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(1)----cocos2D-X渲染结构
cocos2D-X 3.0渲染结构代码讲解,也是cocos2D-X源码讲解系列文章和从cocos2D-X学习OpenGL系列文章的开始原创 2014-06-29 22:17:48 · 17961 阅读 · 8 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(9)----变换和坐标系统
本篇会介绍openGL中的变换和坐标系统,由于篇幅的问题,本篇文章不会把重点的笔墨放在数学基础,如果对数学概念有疑问的读者可以翻一下大学的线性代数教材。 首先是向量的概念,向量是既有大小又有方向的量,他可以用带箭头的线段形象的表示,在openGL中,向量在计算光照上有非常大的作用,这点后面的文章会详细介绍。需要注意的是,在openGL中我们提到的向量常常是标准化向量,那什么是标准化向量原创 2016-06-09 11:03:42 · 7940 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(11)----摄像机
本篇文章介绍一个在游戏中的重要概念,在MVP矩阵中,视图矩阵和投影矩阵都和摄像机有关,说句白话,摄像机其实就是生成投影矩阵和视图矩阵的方式和原因,cocos2d-x中使用GamePlay3D类的Mat4类生成各种矩阵,一下就通过分析摄像机Camera类的代码来看这些矩阵是如何生成的。 首先来看正交矩阵的初始化代码:bool Camera::initOrthographic(float原创 2016-06-11 11:30:19 · 6641 阅读 · 3 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(12)----立方体贴图和天空盒
本篇介绍3d游戏中的天空盒概念,天空盒就是游戏中的背景,它是一个包裹整个场景的立方体,它由六个图像构成一个环绕的环境,给玩家一种所在场景比实际上大得多的感觉,如下图所示。 创建天空盒的方法和创建其他节点一样调用create函数,那我们看看create函数里到底做了什么?bool Skybox::init(const std::string& positive_x, const std:原创 2016-06-11 16:51:29 · 9404 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(13)----模板测试
像素着色器调用完成后。模板测试就开始了,它可以丢弃片元,模板缓冲在渲染时获得有意思的效果。 模板缓冲中一个模板值有8位大小,每个窗口都会创建一个默认的模板缓冲,它可以通过数据控制屏幕显示,从而形成了显示裁剪的效果,如图所示。原创 2016-06-12 10:54:03 · 5414 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(14)----深度测试
深度测试类似于颜色缓冲(颜色缓冲存储片元颜色),深度缓冲是由窗口系统自动创建的,它储存着16、24或32位的浮点数的深度值。在大多数系统中,是24位的。 当深度测试开启时,openGL会用每个片元的深度值和深度缓冲的值对比,执行一次深度测试,如果测试通过,深度缓冲就会用深度值更新,如果深度测试失败,则片元就被抛弃。深度测试是在像素着色器运行后,模板测试完成后,在屏幕空间中完成的。屏幕空间坐原创 2016-06-13 10:29:12 · 6135 阅读 · 1 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(15)----帧缓冲
cocos2d-x中提供一个叫RenderTexture的类,它可以保存屏幕到一张图片,也可以在begin到end之间实现自己的绘制,俨然就是一个独立于屏幕的画布(关于RenderTexture的介绍文章地址:http://blog.youkuaiyun.com/bill_man/article/details/7250911),这个类其实使用了openGL的帧缓冲技术,在调用任何openGL命令之前,首先需原创 2016-06-13 11:37:12 · 6958 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(16)----基本光照
cocos引擎目前已经支持3d功能,之前在3d教程中介绍了cocos2d-x的3d功能中的光照,但是只是粗略的介绍了四种光源,因为光照的重要性和复杂性,这个系列文章会分两篇介绍光照,本篇介绍光照的基础-ADS模型,下一篇详细介绍几种光源。 ADS模型是光照的基本模型,包括Ambient(环境光),Diffuse(漫反射)和Specular(点光源)三种光照在物体上的效果是这样的:原创 2016-06-14 11:28:01 · 5863 阅读 · 1 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(18)----实例化
cocos2d-x中的batchNode的方式可以提高相同的纹理的渲染效率,但是它使用的绘制方式还是glDrawElements的方式,它只是把相同的纹理的绘制命令只提交一次,剩下的重复绘制都调用glDrawElements即可,当绘制中的一些参数变化时,使用glMapBuffer获得数据的指针,然后修改数据,代码如下:glBufferData(GL_ARRAY_BUFFER, sizeof(_q原创 2016-06-15 14:02:36 · 6298 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(19)----旋转表示法
从数学上表示旋转,可以有三种表示方法:矩阵法,欧拉角法和四元数法,我们之前已经介绍了矩阵法,它有个问题,就是容易造成万向节死锁,所谓万向节死锁,就是当绕一个轴旋转到90度的时候,再绕另外两个轴旋转的结果都是一样的,也就是说少了一个自由度,另外矩阵法其中有无用的数据,造成内存的浪费。 欧拉角法是由欧拉在十八世纪提出,它由三个角表示:俯仰角,yaw偏航角,roll滚转角。struct Eu原创 2016-06-15 15:11:28 · 5945 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(10)----MVP矩阵
上一篇介绍了openGL的变换和坐标系,本篇就介绍游戏引擎中一个重要的概念-MVP矩阵,首先涉及到透视投影和正交投影的概念,关于这个概念请参考之前的文章(文章地址:http://blog.youkuaiyun.com/bill_man/article/details/48199593),其中介绍了透视投影和正交投影的概念。 上一篇文章介绍了MVP矩阵的概念,但是并没有在代码上涉及。原创 2016-06-10 12:35:39 · 10533 阅读 · 0 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(8)----纹理
纹理(Texture)就是图片,它用来给物体增加细节,cocos2d-x中使用Texture2D类处理2D纹理贴图,本篇就从cocos2d-x中的Texture2D类介绍openGL纹理。 首先介绍纹理坐标的概念,2D纹理是一个图像数据的二维数组。用2D纹理渲染时,纹理坐标用作纹理图像中的索引。一般来说,在3D内容创作程序中将制作一个网格,每个顶点都有一个纹理坐标。2D纹理的纹理坐标是原创 2016-06-08 12:09:30 · 9376 阅读 · 3 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(3)----BATCH_COMMAND
个人原创,欢迎转载,转载请注明原文地址http://blog.youkuaiyun.com/bill_man上一篇介绍了QUAD_COMMAND渲染命令,顺带介绍了VAO和VBO,这一篇介绍批处理渲染命令BatchCommand,批处理命令的处理在Render中比较简单else if(commandType == RenderCommand::Type:: BATCH_COMMAND){ //将之原创 2014-08-15 20:52:05 · 6315 阅读 · 7 评论 -
cocos2d-x性能优化的那些事
年前在对我做的项目做性能优化,虽然在开发中,性能问题是一直关注着的,但是这个东西依然需要在后期做一段时间的优化的,也遇到不少坑,在这里分享下,也记作笔记,另外也欢迎大家有这方面的问题经验在这里讨论。性能的优化主要是亮点,内存的优化和运行效率的优化1.内存的优化 说内存的优化,首先要知道有什么东西会占据程序的内存,可优化的主要是两部分:数据和资源,先说数据,做短连接的游戏客户端有两种处理原创 2015-02-20 14:23:00 · 15306 阅读 · 4 评论 -
Cocos 3D功能初探学习笔记(1)---摄像机
本篇首先介绍摄像机,其实2D时cocos引擎就有摄像机这个概念,每个节点都拥有一个摄像机类,当时的摄像机类的使用实例就是实现节点对象的缩放旋转,因为节点本身就自带这些功能,所以摄像机使用的场合并不多,笔者只在有一次为了实现一个正面视角向前进效果的时候为了让场景有一个“假”3D的效果的时候使用了setEyeXYZ之类的接口,但在3D中,摄像机是个很重要的概念,因为如果直接在设备上显示标准几何模型的坐标,可能屏幕上什么都看不到,因为模型坐标的范围可能不与设备坐标范围相对应,显示器本身是个平面固定的二维矩形区域,原创 2015-09-03 23:17:24 · 10904 阅读 · 2 评论 -
Cocos 3D功能初探学习笔记(2)---3D精灵
在2D阶段,最常用的绘制单元毫无疑问是精灵,通过精灵,我们可以将图片绘制到屏幕上;3d阶段,我们需要绘制在屏幕上的变成了美术人员通过3dmax等工具做出来的3d模型,绘制3D精灵是cocos最早的一批功能之一,也是比较重要的功能之一,本节我们就来学习3D精灵的绘制。原创 2015-09-12 19:20:28 · 5172 阅读 · 1 评论 -
Cocos 3D功能初探学习笔记(3)---光照
3D游戏中光照对于游戏效果占有举足轻重的作用,也是与2D游戏的重要区别。cocos引擎也提供了完善的光效效果支持。光照就是光源照到物体上的效果,cocos引擎支持四种光源,继承自Node类,也就是说可以作为子节点防止到场景里,四种光源的基类是BaseLight,它是所有灯光的基类,cocos2d-x支持4种灯光,环境光、方向光、点光源和聚光灯。每个灯光都有一个灯光标记lightflag, 只有当物体的灯光掩码lightmask与(1<<lightFlag)做与运算不为0的时候这个物体才会被该灯光照亮。原创 2015-10-06 20:30:22 · 5273 阅读 · 2 评论 -
cocos2D-X源码分析之从cocos2D-X学习OpenGL(4)---混合
之前在项目中就使用过混合,但是研究的不深入,近期美术的一个需求让我下决心重新深入的研究了一下混合以及它在cocos2d-x中的使用,在这里分享给大家。原创 2015-12-30 20:12:30 · 5366 阅读 · 1 评论