cocos2d-x
文章平均质量分 85
偶尔e网事
折腾族:https://fusijie.github.io
展开
-
地球人己阻止不了程序猿们学习cocos2d-x了 (第三篇)
(内容重点: Win+iOS+Android 兼容)知道了 cocos2d-x 的一些基本知识, 我觉得差不多可以开始实习了, 因为我的目标是想兼顾 Windows, iOS (iPhone+iPad) 和 Android, 所以我们先看看怎样建立和设定有关的工程吧.第一步来说, 我们要準备一些图像来用, 和第一篇一样, 我找来了Daniel Cook 提供的免费资源, 关于Danc大家可以看看这转载 2013-09-05 14:46:22 · 2904 阅读 · 0 评论 -
地球人己阻止不了程序猿们学习cocos2d-x了 (第二篇)
转自http://cocos2d.cocoachina.com/bbs/forum.php?mod=viewthread&tid=805&extra=page%3D1(内容重点: 动画, CCAnimation, CCAnimate, CCSpriteFrameCache)一个遊戏的角色如果只是静止的, 相信不会太招人喜欢, 动作流畅自然的遊戏角色, 更能让遊戏大放异彩, 搞不转载 2013-09-05 14:37:14 · 3509 阅读 · 3 评论 -
地球人己阻止不了程序猿们学习cocos2d-x了 (第四篇)
转自http://cocos2d.cocoachina.com/bbs/forum.php?mod=viewthread&tid=979&extra=page%3D1内容重点: 射击遊戏, 框架, 操控, 视窗键盘运用这次我準备写一个简单的射击遊戏作为练习, 遊戏里可以控制主角移动, 按钮发射子弹射击飞过来的敌人, 被敌人撞到就 Game Over.通过这个练习可以熟识转载 2013-09-05 14:58:59 · 2722 阅读 · 1 评论 -
地球人己阻止不了程序猿们学习cocos2d-x了 (第一篇)
转自http://cocos2d.cocoachina.com/bbs/forum.php?mod=viewthread&tid=775&extra=page%3D1(内容重点: CCSprite, CCSpriteFrameCache, CCSpriteBatchNode, TexturePacker)很早就开始留意 cocos2d, 但不太习惯用 Objective C, 同时也考转载 2013-09-05 14:23:06 · 4185 阅读 · 3 评论 -
cocos2d-x事件触发的优先级
刚刚开始学习coocs2d-x的时候,被这个事件的优先级整的可是够呛啊。关于事件,有CCStandradTouch,CCTargetedTouch。CCTouchDispatcher类分发S获取的触摸事件。它有两种分发方式,一种是CCStandardTouchDelegate,一种是CCTargetedTouchDelegate。和前面的事件一一对应,前者将所有的Touch信息直接传递给实现该协议转载 2013-09-04 10:45:30 · 4063 阅读 · 0 评论 -
cocos2d-x如何快速屏蔽触摸
cocos2d-x有个问题,即使暂停CCScene运行,触摸仍然有效,有些菜单和按钮仍然会被触发。所以有的时候我们要手动屏蔽触摸,尤其是在弹出计费画面的,或者使用一些本平台自带控件的时候。做法有几种:第一种方案是:每一个继承自CCLayer的类都可以关闭触摸,使用这个函数setIsTouchEnabled(false); 在暂停sence时,我们只需要关闭那些主转载 2013-09-04 10:44:06 · 2633 阅读 · 0 评论 -
cocos2d-x中CCCallFunc CCCallFuncN CCCallFuncND的区别和使用示例
CCCallFunc CCCallFuncN CCCallFuncND都用来创建带有回调函数的动作,区别主要在于回调函数是否带有参数CCCallFuncCCCallFunc是执行对应的回调函数,其中回调函数不可带参数。一般使用静态成员函数create创建实例,create声明如下:static CCCallFunc* create ( CCObject * pSelector转载 2013-09-02 14:16:47 · 3072 阅读 · 2 评论 -
CCSprite类详解
1 在cocos2d-x中,精灵CCSprite是整个游戏开发处理的主要对象,例如天上的飞机、地上的坦克、玩家控制的任务等等都是精灵。甚至天上随机飘过的一朵白云、飞过的一只鸟也都是精灵。实际上,精灵就是一个可以不断变化的图片,变化包括位置变化、旋转、放大、运动等等。 2 可见,精灵在游戏中是十分重要的组成部分,随处可见。在cocos2d-x中,要用到图片展示的,基本上会使用到精灵类转载 2013-09-02 09:37:55 · 2272 阅读 · 0 评论 -
CCNode类详解
1 CCNode是cocos2d-x中一个很重要的类,CCNode是场景、层、菜单、精灵等的父类。而我们在使用cocos2d-x时,接触最多的就是场景、层、菜单、精灵等。所以有必要先弄懂CCNode类 2 CCObject类是cocos2d-x中所有对象的基类,CCObject封装了对象的引用计数和自动释放功能,下面是类图 3 因为场景、层、精灵、菜菜单是C转载 2013-09-02 09:32:20 · 3112 阅读 · 2 评论 -
cocos2d-x游戏主要逻辑和结构
在Cocos2d-x中开发游戏的主要逻辑和结构是:先创建场景,在场景上添加一层或多层,然后可以在指定层上添加精灵、菜单、文字等,可以为精灵、文字执行某个动作(或者移动),检测玩家触屏事件,开启任务调度执行碰撞检测和更新数据,通过导演类管理和切换场景等等。(1)导演(CCDirector)在cocos2d-x引擎中,导演类CCDirector是个单例,这里主要用来管理和显示场景的,还转载 2013-09-02 09:29:06 · 5447 阅读 · 0 评论 -
Cocos2d-x实现精灵的拖动
//ccTouchBegan必须实现,否则会报错bool PicScan::ccTouchBegan(CCTouch* pTouch, CCEvent* event){ return true;} void PicScan::ccTouchMoved(CCTouch *touch, CCEvent *event){ //获得触摸点初始坐标 CCPoint beg原创 2013-09-03 14:42:49 · 6072 阅读 · 0 评论 -
CCAction类详解
1 在一个游戏中有了人物、白云等精灵,但是游戏中精灵静止不动肯定是不行的,要让它们执行一些动作,使精灵有丰富的动画效果,这样就会使用到CCAction类。CCAction主要用于人物角色等发生动作时使用,如紧身肉搏、远程射击和贴近对话等 2 在cocos2d-x中,CCAction的类结构图如下 3 从上面的类结构图可以看出,动作的基类是CCAction,通转载 2013-09-02 09:38:48 · 2065 阅读 · 0 评论 -
CCScene和CCLayer类详解
1 在cocos2d-x引擎中,CCScene中存放的是需要渲染的层、人物角色和菜单等。它们可以作为一个整体,一起渲染,一起销毁,一起被场景切换是用 2在cocos2d-x引擎中,CCScene的类结构很简单,是CCNode的子类,类结构图如下 3 下面来看看CCScene中的主要函数(cocos2dx\layers_scenes_transitions_n转载 2013-09-02 09:37:13 · 3175 阅读 · 0 评论 -
CCDirector类详解
1 CCDirecor(导演)在cocos2d-x引擎中是一个很重要的类,CCDirector使用单例模式实现,所以整个游戏中只有一个导演。CCDirector在整个游戏中扮演很重要的角色:(1)在开始游戏和结束游戏时负责游戏的初始化和销毁工作。(2)管理游戏的关卡,即场景。负责各个场景之间的切换。(3)设置、获取系统信息,比如调整OpenGL相关的设置,获取屏幕的大小等 2 co转载 2013-09-02 09:30:52 · 2882 阅读 · 0 评论 -
程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理 - by Glede
最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、director啊、ccpoint啊都蛮便捷的。但是我看到几个dev有时候会很不知道用它们,还是首先自己去写函数……用一些比较原始、低效率的方法……甚至是copy / paste………………。……。这不科学啊!你不能这转载 2013-08-28 17:19:19 · 3071 阅读 · 1 评论 -
地球人己阻止不了程序猿们学习cocos2d-x了 (第六篇)
转自http://cocos2d.cocoachina.com/bbs/forum.php?mod=viewthread&tid=3527&extra=page%3D1内容重点: Hello World 3D, 简单的3D 渲染 + MD2 模型English version: http://jameshui.com/?p=10cocos2d-x 是一个2D 遊戏引擎,转载 2013-09-05 15:03:46 · 3451 阅读 · 0 评论 -
【cocos2d-x入门实战】微信飞机大战之十三:游戏场景过渡
cocos2d-x之微信打飞机实战演习,原滋原味的微信打飞机源码分享。原创 2013-09-27 11:00:34 · 9111 阅读 · 0 评论 -
【玩转cocos2d-x之二】游戏和引擎构成
1.游戏构成我们以超级马里奥游戏作为蓝本来描述一下一个游戏的构成。1.首先我们需要一个容器来放置游戏元素,每一个关卡都是一个容器,这叫场景。2.蓝天白云,各种板砖水管,这些是布景,放置在关卡中,通过布景的叠加,构成了游戏的主要背景。3.主角马里奥兄弟和各种小怪兽,这些叫精灵。这是游戏互动的主要元素。4.马里奥可以走路,可以跳跃,可以发射子弹。这些是精灵的动作。5.过关了,要原创 2013-10-09 10:38:55 · 7438 阅读 · 2 评论 -
【玩转cocos2d-x之二十六】数据结构CCDictionary
CCDictionary在cocos2d-x中被大量的应用,比如CCTexureCache,CCSpriteFramCache等等。1.实现原理1.1.uthashCCDictionary是使用uthash实现的,而过时的CCMutableDictionary则是使用STL实现,就效率而言CCDictionary至少提升了两倍,而且CCDictionary并没有原创 2013-11-26 08:47:05 · 9860 阅读 · 4 评论 -
【玩转cocos2d-x之二十五】数据结构CCArray
CCArray是从cocos2d中移植过来的,类似于Apple的NSMutableArray,但是比NSMutableArray更为的好用。要注意的是虽然CCArray和CCDictionary可以管理cocos2d-x中绝大多数的类,但是仍然无法替代STL库,STL库更为强有力。1.API先看一下CCArray可以帮我们做什么。1.1.创建[c原创 2013-11-25 08:58:26 · 10087 阅读 · 4 评论 -
【玩转cocos2d-x之一】V2.2.0版本开发环境配置
现在cocos2d-x处在上升期,各个版本的变化还是比较大的,单从环境配置来看,从v2.0到v2.2就变化了不少。今天配置了一下V2.2.0环境,创建项目,并进行交叉编译,发现比之前麻烦了不少。这里稍微记录一下。3.0版本出来了,大概看了下目录和2.2的差不多,环境配置也基本一样。1.VS,VA,Cygwin,Java,Eclipse,ADT,SDK,NDK这里就不重复啰嗦这些了,原创 2013-10-08 14:11:56 · 19675 阅读 · 52 评论 -
【玩转cocos2d-x之二十】从CCObject看cocos2d-x的内存管理机制
再看CCObject,剔除上节的拷贝相关,以及Lua脚本相关的属性和方法后,CCObject还剩下什么?1.剩下什么?可以看到整个CCObject就是围绕着m_uReference和m_uAutoReleaseCount在转。这两个变量的解释如下。所以CCObject剩下的其实就是对内存的管理。CCObject::CCObject(void)//构造函数: m_nLuaI原创 2013-10-31 09:09:13 · 6679 阅读 · 2 评论 -
【玩转cocos2d-x之十九】从CCObject看cocos2d-x的拷贝机制
CCObject在之前的文章中出现了N次,它扮演了一个老祖宗的角色,但是它到底是做什么的?先从它看看cocos2d-x的拷贝机制吧。1.CCCopyingCCObject从CCCopying继承而来,而CCCopying拥有唯一的虚函数copyWithZone,这个函数可以认为是拷贝的一个协议,所有继承了CCObject并且需要实现拷贝功能的子类都可以通过它来实现,它的源码很简单,原创 2013-10-30 08:13:30 · 7811 阅读 · 6 评论 -
【玩转cocos2d-x之十三】CCMenu的布局
前两天写个游戏,发现CCMenu的布局还是比较有意思的,这里总结一下,以便后用。1.概况CCMenu是cocos2d-x的菜单类,但它本身并不具备菜单具体属性,而是作为一个父节点,将一些具体类型的菜单添加进去来达到菜单目的的。我们正常会这么使用它:先创建子菜单项CCMenuItem,然后将子菜单项CCMenuItem加入菜单CCMenu,最后把CCMenu加入当前层CCLa原创 2013-10-21 09:30:28 · 9869 阅读 · 2 评论 -
【玩转cocos2d-x之十一】定时器schedule
如果我们想定时执行一个动作怎么办?CCScheduler帮了我们一个大忙。1.概况CCNode内部封装了一个[cpp] view plaincopyCCScheduler *m_pScheduler; 正是通过它我们可以很轻松地完成一些定时功能,所以定时器是节点所具备的功能。定时器分为2种原创 2013-10-18 09:22:03 · 21388 阅读 · 3 评论 -
【玩转cocos2d-x之九】动作类CCAction
精灵也出来了,但是不会动的精灵是木有用的。。。CCAction就是负责来解决精灵运动的问题。1.概况CCAction直接从CCObject继承而来,注意它代表的是一个动作,是动词。精灵执行了这个动作,而不是名词。CCAction本身并没有什么功能,主要是定义了一些通用函数和虚函数让子类实现多态性。2.接口[cpp] vie原创 2013-10-16 08:17:39 · 8825 阅读 · 4 评论 -
【玩转cocos2d-x之八】精灵类CCSprite
精灵类CCSprite可以说是游戏的主角了,也是我们平时最常用到的类。1.概况CCSprite本质上就是一个二维图片,是静态的。游戏中的动画只不过是让一张张静态图片快速更换达到的动态效果。CCSprite继承于CCNodeRGBA,并实现了CCTextureProtocol的接口。因此CCNodeRGBA所具有的RGB和透明值这些属性和接口CCSprite都有,原创 2013-10-15 11:39:22 · 10134 阅读 · 0 评论 -
【玩转cocos2d-x之七】场景类CCScene和布景类CCLayer
场景类CCScene和布景类CCLayer都是作为一个容器来使用,这里简单地看下它们的实现:1.场景类:CCSceneCCScene类继承于CCNode,它的实现很简单,就是基本上没添加什么内容。。。它只是作为一个容器(父节点)的抽象概念存在。对比CCNode差别有:(1)构造函数中设置了不使用锚点定位,而是使用了坐标原点,即使设置了锚点也不起作用。原创 2013-10-14 14:34:25 · 9383 阅读 · 2 评论 -
【玩转cocos2d-x之六】节点类CCNode
节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,CCLayer,CCSprite,CCMenu,CCSpriteBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。1.概况CCNode直接从CCObject继承而来,有如下几个特点:(1)原创 2013-10-14 08:24:33 · 10166 阅读 · 6 评论 -
【cocos2d-x入门实战】微信飞机大战之七:触摸事件和优先级
cocos2d-x之微信打飞机实战演习,原滋原味的微信打飞机源码分享。原创 2013-09-21 09:50:04 · 14852 阅读 · 37 评论 -
【cocos2d-x入门实战】微信飞机大战之十四:背景音乐和音效
cocos2d-x之微信打飞机实战演习,原滋原味的微信打飞机源码分享。原创 2013-09-28 09:01:58 · 12923 阅读 · 24 评论 -
【玩转cocos2d-x之三】cocos2d-x游戏是怎么跑起来的
虽然cocos2d-x v3.0 alpha版已经出来了,也改进了不少,有兴趣的可以去尝尝鲜。因为后面可能还会配合cocoStudio写一下博客,而现在v1.0.0.0版本需要配合cocos2d-x v2.2.0使用。所以这里选择了V2.2.0版的cocos2d-x。一个新的东西,从头开始吧!从HelloWorld出发看一下一个cocos2d-x游戏是怎么跑起来的。先看看它的结原创 2013-10-10 08:14:53 · 11112 阅读 · 6 评论 -
【玩转cocos2d-x之五】导演类CCDirector
既然cocos2d-x都帮我们封装好了,使得开发与平台无关,那接下来我们就单纯地开始好好玩游戏吧!这几篇是对cocos2d-x一些基本且重要的元素进行解释和API介绍,之前没有系统的看过API,有时候某些功能引擎都已经提供好了,不知道还是会自己去写。所以全面地了解一下是必须的。1.概况导演类CCDirector是cocos2d-x引擎中非常重要的一个类,它是一个抽象原创 2013-10-12 08:46:36 · 9950 阅读 · 2 评论 -
cocos2d-x 2.0通过CCAnimation实例获取CCSpriteFrame
在学习魔塔游戏时,有一步是通过CCAnimation实例获取CCSpriteFrame,会出现类型转换问题。我们在创建一个animation的时候,经常遵循下面的步骤:1)create 一个CCArray对象A。2)通过A->addObject()添加CCSpriteFrame对象3)通过CCAnimation::createWithSpriteFrames(A, 0.2f)常见一转载 2013-08-26 15:31:51 · 2459 阅读 · 0 评论