Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x提供的框架。手机游戏,可以写在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行在iOS,Android,黑莓Blackberry等操作系统中。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,开发者编写的源代码很容
对不起,如果这听起来很琐碎.我只是没有得到它.如何确定特定精灵是否已经存在于图层中?基本上,我需要在确定是否将其添加到图层之前检查这一点. if ( [ myNode.children indexOfObject:sprite ] == NSNotFound ) { // you can add the code here }
?1. 玩法说明     游戏开始后,点击屏幕左右两侧,机器人朝左上方或右上方跳一步,如果下一步有石块,成功得1分,否则游戏结束。   2. 模块介绍     游戏场景分为2个:主页场景(home)、游戏场景(game)。 ?   主页场景(home)作为游戏入口,没有其他功能,单纯提供游戏入口。 ?   游戏场景(game)实现游戏玩法以及游戏逻辑控制,界面如下: ?   游戏的主体功能,都在游
在线体验链接: http://example.creator-star.cn/block3d/ 前面一篇文章,我们讲了【打砖块】游戏中的3D物体的场景布局、材质资源、物理刚体与碰撞组件,接下来本篇文章重点介绍“子弹的发射”与“摄像机移动”,有了这两部分我们的【打砖块】游戏就可以初步玩起来了。 子弹的发射 子弹是由 3D 物体 Sphere 球体创建,并将节点改名为 bullet,看下图: 在层级管
在记录优化内容前选搞清楚web渲染流程的四个主要步骤: 解析HTML生成DOM树 - 渲染引擎首先解析HTML文档,生成DOM树 构建Render树 - 接下来不管是内联式,外联式还是嵌入式引入的CSS样式会被解析生成CSSOM树,根据DOM树与CSSOM树生成另外一棵用于渲染的树-渲染树(Render tree), 布局Render树 - 然后对渲染树的每个节点进行布局处理,确定其在屏幕上的显示
网络结构 网络结构是网络构建方式,目前流行的有客户端服务器结构(C/S结构)和点对点(P2P)结构网络。 客户端服务器结构(C/S结构) 这种结构又被称为Clicent/Server结构,它是一种主从结构。服务器一直处于等待状态,如果客户端请求,服务器响应请求,建立连接,提供服务。服务器是被动的,客户端是主动的。类似于在豪华餐厅点餐,客人是主动的,服务员是被动的。 点对点结构(P2P结构) 这种结
今天,我使用cygwin和ndk-r8交叉构建我的cocos2d-x android项目:HelloCpp,我失败并得到一些错误,如: Unknown EABI object attribute 44 以下是来自cygwin的消息: StaticLibrary : libcocos2d.a SharedLibrary : libhellocpp.so E:/android-ndk-r8/too
1.资源文件不要用pvr.gz格式的,否则win运行正常编译正常,手机安装正常就是打开闪退! 2.注意资源路径大小写,如果大小写错误的话win上运行正常编译正常,手机安装正常就是还是打开闪退! 3.注意android.mk的修改,以及要使用scrollview的时候也会又要修改的地方。这个在编译的时候就可以发现了比较好弄 这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久
    由于接了个小外包,要用到cocos2dx 2.2.3,现在就简单说说怎么创建项目的,环境如果之前用cocos2dx 3.1.1的话,那么环境基本都是配好了的,现在在官网上面下个cocos2dx 2.2.3,解压,就可以了,下面说说怎么创建项目,指令和3.x还是有点区别的。    进入你的工程 creator_project目录下面,然后cmd输入命令行,输入python create_pr
一、box2d基础知识 1、关于  Box2D 是一个用于游戏的 2D 刚体仿真库。从游戏的视角来看,物理引擎就是一个程序性动画(procedural animation)的系统,而不是由动画师去移动你的物体。 1、核心概念  刚体(rigid body)一块十分坚硬的物质,它上面的任何两点之间的距离都是完全不变的。 形状(shape)一块严格依附于物体(body)的 2D 碰撞几何结构(coll
原文请猛戳: http://galoisplusplus.coding.me/blog/2014/07/30/memory-management-in-cocos2d-x-v3/ cocos2d-x移植自Objective C的cocos2d,其内存管理其实也来自于OC。因而对于写过OC程序的朋友来讲,cocos2d-x的内存管理应该是一目了然的,但对于本渣这枚没接触过OC的C++码农来说,或许直
ZORDER:是描述渲染顺序的值,每个CCNode都有ZORDER,默认是0 ZORDER越大,越后面绘制 如果ZORDER相同,那么看arrival顺序,先加入的节点先绘制 ZORDER只在相同父节点的节点之间进行比较 先从一段简单的代码看起: //在层上设置属性 bool Zorder::init() { //初始化父类层 CCLayer::init(); //得到窗
1.  从plist 读取配置 2.0做法: CCArray* pKeyArray = CCArray::createWithContentsOfFile(levelFile); pKeyArray->retain(); CCObject* pObj = NULL; CCARRAY_FOREACH(pKeyArray, pObj) { CCDicti
cocos2dx原生lua绑定工具的总结   转载:http://www.cocoachina.com/bbs/read.php?tid=226362  本帖属于 CocoaChina会员发表,转帖请写明来源和帖子地址 一、个人对“绑定”这词有两种理解 1、lua绑定到C++,就是C++能调用到lua的东西,那必须让C++知道有哪些lua函数或变量可以用 2、C++绑定到lua,就是lua能调用到
印象笔记链接: http://app.yinxiang.com/l/AAXdkdFkFV1L-Y6jsHAGUegJenwyqPc9SzQ/ 印象笔记搬运: cocos2d::Vector 1、底层实现是用std::vector 随机访问O(1) 将元素插入到尾部或者删除尾部的元素,O(1) 随机插入或删除O(n) 2、T必须是继承自Cocos2d::object类型的指针,因为已经将cocos2
为了保存自定义数据文件,需要保存文件和读取文件,也就是File的IO处理; 针对cocos2d-x我们可以通过CCFileUtils::sharedFileUtils()->getWriteablePath()获取到可读写的文件目录,其实是Caches目录。 关于file的操作,我们要明白几个概念: File :文件对象,用于创建文件,操作文件 fopen:打开操作一个具体文件(文件路径,模式)模
此文属转载,文章转载来源:http://www.cocoachina.com/bbs/read.php?tid=194668&page=1 前天, 在CocoaChina 2014春季大会上, 激动人心的Cocos2d-x 3.0和CocoStudio 1.3发布了. Cocos2d-x 3.0做出令人兴奋的性能, 易用性等一系列改进, CocoStudio 1.3带来了稳定性和新特性. 今天让我
http://blog.csdn.net/jackystudio/article/details/16958587 CCDictionary在cocos2d-x中被大量的应用,比如CCTexureCache,CCSpriteFramCache等等。 1.实现原理 1.1.uthash CCDictionary是使用uthash实现的,而过时的CCMutableDictionary则是使用STL实现
原创作品,转载请标明:http://www.voidcn.com/article/p-bsovodom-ep.html CCArray是从cocos2d中移植过来的,类似于Apple的NSMutableArray,但是比NSMutableArray更为的好用。要注意的是虽然CCArray和CCDictionary可以管理cocos2d-x中绝大多数的类,但是仍然无法替代STL库,STL库更为强有力
概述 从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念。 有以下相关接口: 1 2 3 4 5 6 7 8 CCEGLView::sharedOpenGLView()->setDesignResolutionSize() //设计分辨率大小及模式 CCDirector::shar
一、转场景代码:       auto scene=HelloWorld::createScene();//创建待切换的场景 auto transition=TransitionZoomFlipY::create(1.0f,scene);//给场景包装动画特效 Director::getInstance()->replaceScene(transition);//运用导演类来进行切换场景 二
区别1.去CC 之前2.0的CC**,把CC都去掉,基本的元素都是保留的 2.0 CCSprite CCCallFunc CCNode .. 3.0 Sprite CallFunc Node .. 区别2.cc***结构体改变 2.0 ccp(x,y) ccpAdd(p1,p2) ccpSub ccpMult ccpLength(p) ccpDot(p1,p2);
我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用Box2D物理引擎的开发过程,熟悉这些API的使用。这个实例运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点生成一个新的精灵,精灵的运行自由落体运动。    HelloBox2D实例 使用Box2D引擎进行开发过程,如图12-15所示。下面我们就按照这个步骤介绍一下代码部分。首先看一下看HelloWor
    最近忙完了手里的项目,马上就要接着做大的项目了,抽空学习看看3.2的引擎,自己写几个小游戏试试,留下一些开发经验,以备后用 android平台菜单返回键监听 .h void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event); .cpp //按键控制(检测onKeyReleased有反应) auto listener =
原地址:http://cn.cocos2d-x.org/tutorial/show?id=1582 本文主要介绍Cocos2d-x 3.3版本中强大的3D功能。 主要有以下功能: 1. 基本的Sprite3D使用,加载静态模型和动态模型,查看Sprite3DBasicTest; 2. Sprite3D对象的旋转,缩放等Action操作; 3. Sprite3D中使用Shader特效,实现outLi
cocos2d-x版本:3.x cocostudio版本:1.6 说一些抱怨的话,cocos2d-x自3.0以后发生的变化可以用翻天覆地来形容都不为过,不但类名与2.x版本的不一样(不仅仅只是体现在去掉2.x版本的类名开头CC),一些类名甚至可以说全改了,对资源的解析也采取了不一样的方式,而网络上的技术贴很多都是2.x版本的,一旦出现问题,官网上的指导有时候都不管用,真是头大,坑特多,不知道为啥需
Cocos2d-x 3.0坐标系详解 Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系。 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系。 屏幕坐标系和Cocos2d坐标系 标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和OpenGL相同的坐标系。 iOS, Android, Windows
1、 创建一个精灵sprite; 2、一个触摸事件 listener ,设置listener的onTouchBegan,onTouchMoved,onTouchEnded; 3、将sprite 和 listener关联起来。 实现如下: 1、 创建精灵: Point origin = Director::getInstance()->getVisibleOrigin(); Size size =
在Box2D中碰撞事件通过实现b2ContactListener类函数实现,b2ContactListener是Box2D提供的抽象类,它的抽象函数: virtual void BeginContact(b2Contact* contact)。两个物体开始接触时会响应,但只调用一次。 virtual void EndContact(b2Contact* contact)。分离时响应。但只调用一次。
下面我们将使用Box2D物理引擎技术进行重构。使得关节能够掌握如何在Box2D使用关节约束。 HelloWorldScene.cpp中与使用关节的相关代码如下: void HelloWorld::addNewSpriteAtPosition(Vec2 p) { log("Add sprite %0.2f x %02.f",p.x,p.y); //创建物理引擎精灵对象A
这个问题一直纠结了非常久。从去年的2.x一直纠结都现在。一直都是没有真正抱着非要弄出来的态度。都是打Log来调。因为手头刚好一个原来一直没有在android上发布的项目。而且是从2.x迁移过来的。所以问题靠打log估计我会疯掉。。 1. 先新建一个cocos2dx 的项目 2.将新建出来的工程导入到eclipse中 在eclipse中项目的几个属性配置如下。 在android中选择一个版本打上勾。