cocos2d-x

Cocos2d-x vs cocos2d-android for an Android game

一曲冷凌霜 提交于 2019-12-02 16:46:15
After using 'cocos2d-iphone' in one of my projects, I am trying to decide which flavor of Cocos2d I should use for an Android game. My personal list of pros and cons: Cocos2d-x pros: it should be easier to bring the game to iOS later, potentially other platforms as well cons/doubts: debugging c++ code on Android (easy or not?), compatibility of NDK app with various Android devices (how much of a problem?), accessing platform-specific functionality (in-app purchases, etc.) cocos2d-android pros: all Java, easier to setup and access platform-specific functions cons: will have to translate from

How to enable Box2d debug draw with Coco2d-x 3.0 beta 2

纵饮孤独 提交于 2019-12-02 11:15:38
How I should enable debug draw with Cocos2d-x 3.0? There are some codes that do that with cocos2d-x 2.0 but they don't even compile on Cocos2d-x. Unfortunately I am new to both cocos2d-x and Box2d and I don't know how to port them. That would be great if you would share the method how you draw shapes. EDIT: I have found this: http://blog.csdn.net/tian2kong/article/details/20386213 I have overridden the draw method of my applications main Layer like this: void HelloWorld::draw() { GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POSITION); kmGLPushMatrix(); m_world->drawDebugData(); kmGLPopMatrix

Cocos2d-x入门之旅

ぐ巨炮叔叔 提交于 2019-12-02 10:49:02
Cocos通过动作(Action)让精灵动起来,把数个动作组成序列(Sequence)就能让精灵做出连续的动作,在动作中我们可以改变精灵的位置,旋转角度,缩放比例,等等 动作(Action) # 首先我们创建一个 Action 对象,同样使用 create ,这里我们还是使用HelloWorld场景里的那张图片 Copy auto sprite = Sprite::create("sinnosuke.png"); 在 setPosition 之后我们加上一句 Copy // 在2秒内:向右移动精灵50像素,向上移动精灵10像素 auto moveBy = MoveBy::create(2, Vec2(50, 10)); sprite->runAction(moveBy); 这个精灵就会平滑地根据我们输入的参数移动 如果把 moveBy 改成 moveTo ,那就会是另一种结果: Copy // 在2秒内:把精灵移动到坐标(50,10) auto moveTo = MoveTo::create(2, Vec2(50, 10)); sprite->runAction(moveTo); 精灵直接移动到了 (50,10) (锚点在其正中间) By 和 To 的区别 # By 算的是相对于节点对象的当前位置 To 算的是绝对位置,不考虑当前节点对象在哪 动作组合 #

Cocos2d-x开发中Ref内存管理

孤人 提交于 2019-12-02 09:58:57
Ref类是Cocos2d-x根类,Cocos2d-x中的很多类都派生自它,例如,我们熟悉的节点类Node也派生自Ref。我们介绍Ref内存管理。 内存引用计数 Ref类设计来源于Cocos2d-iphone的CCObject类,在Cocos2d-x 2.x中也叫CCObject类。因此Ref类的内存管理是参考Objective-C手动管理引用计数(Reference Count)而设计的。 如图所示是内存引用计数原理示意图。 每个Ref对象都有一个内部计数器,这个计数器跟踪对象的引用次数,被称为“引用计数”(Reference Count,简称RC)。当对象被创建时候,引用计数为1。为了保证对象的存在,可以调用retain函数保持对象,retain会使其引用计数加1,如果不需要这个对象可以调用release函数,release使其引用计数减1。当对象的引用计数为0的时候,引擎就知道不再需要这个对象了,就会释放对象内存。 引用计数实例如图所示,我们在ObjA中使用new等操作创建了一个Ref对象,这时候这个对象引用计数为1。然后在OjbB中使用retain函数保持Ref对象,这时引用计数为2。再然后ObjA中调用release函数,这时引用计数为1。在ObjB中调用release函数,这时引用计数为0。这个时候Ref对象就会由引擎释放。 在Ref类中相关函数有:retain()

使用CocosBuilder2.1结合cocos2d-x2.0.3创建动画场景

柔情痞子 提交于 2019-12-02 09:58:32
原文地址:http://article.ityran.com/archives/2140 本为由泰然教程组成员 浅底 原创,作为一位经验丰富的游戏开发人员,这次浅底将CocosBuilder经验分享给大家,希望大家喜欢,欢迎拍砖!!转载请注明出处!! 在使用Cocos2d框架开发iOS游戏的时候,对于每一个场景(CCScene)的编辑是比较麻烦的,好在有外国的牛人提供了非常棒的场景编辑器—-CocosBuilder。 作为可视化编辑的补充,cocosBuilder成为cocos2D-iphone和cocos2D-x最流行的可视化编辑器。cocos2D-x从2.0版本开始支持cocosBuilder,同样cocosBuilder也是2.0版本与之对应 , 可以通过cocosBuilder的官方网站 http://cocosbuilder.com/ 下载cocosBuilder 。 一、 下载cocosBuilder 2.1和cocos2d-x 2.0.3版本。 二、 把自己想制作动画的资源放在一个文件夹中,命名为ccb,把cocosbuilder publish的文件,创建另一个文件夹,命名为ccbPublish。(文件夹命名随意) 如上图。 注:此处讲解将cocosBuilder和cocos2d-x分开来介绍,一般可以让美工人员掌握cocosBuilder

Visual Studio下SQLite数据库开发环境设置

跟風遠走 提交于 2019-12-02 09:46:30
由于我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置。具体而言我们有两种方式可以在Visual Studio中SQLite数据库:使用SQLite源代码文件和使用Cocos2d-x提供的库文件。 1、使用SQLite源代码文件 SQLite是C编写的开源的数据库,我们可以在http://www.sqlite.org/download.html网址下载最新的SQLite源代码,如我下载的sqlite-amalgamation-3080401.zip文件,解压这个文件后的内容包括:shell.c、sqlite3.c、sqlite3.h和sqlite3ext.h。我们一般只需要sqlite3.c和sqlite3.h两个文件就可以了。 我们需要把这两个文件添加到工程中,具体过程是拷贝它们到工程中Classes目录,打开解决方案,如图所示,右键点击HelloWorld工程下Classes目录,在右键菜单中选择,“添加”→ “现有项”。然后,在弹出对话框中选择sqlite3.c和sqlite3.h文件添加到工程中。 添加sqlite3.c和sqlite3.h文件到工程 2、使用Cocos2d-x提供的库文件 由于Cocos2d-x引擎其实已经带有为Win32下访问SQLite所需要的库

Cocos开发中Visual Studio下libcurl库开发环境设置

♀尐吖头ヾ 提交于 2019-12-02 09:46:21
我们介绍一下win32中Visual Studio下libcurl库开发环境设置。 Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件所在位置是<工程目录>\cocos2d\external\curl\prebuilt\win32目录中,头文件在<工程目录>\cocos2d\external\curl\include\win32目录中。 首先,我们需要配置头文件搜索路径,选中HelloCpp工程,打开菜单“项目”→ “属性”弹出工程属性对话框,如图所示,选择“配置属性”→“C++” →“常规”,在右边的“附加包含目录”中添加$(EngineRoot)external\curl\include\win32,注意配置目之间需要用分号分隔开。 配置头文件搜索路径 添加搜索路径后,就可以在程序中添加下面代码引入头文件。 #include "curl/curl.h" 然后编译工程,如果没有编译错误则说明配置成功。 接下来我们还需要将libcurl的库文件配置到链接环境中附加依赖项。打开工程属性对话框,如图所示,选择“配置属性”→“连接器” →“输入”,在右边窗口的“附加依赖项”,添加内容libcurl_imp.lib。 更多内容请关注国内第一本Cocos2d-x 3.2版本图书《Cocos2d-x实战:C++卷》

Cocos2D-X弹出对话框的实现与封装

有些话、适合烂在心里 提交于 2019-12-02 08:59:15
在用Cocos2DX引擎开发游戏的过程中,我们经常需要弹出一个对话框或者提示框,通知玩家一些必要的信息。这时候我们就需要考虑怎样设计和封装一个这样的弹出对话框。首先,这样的弹出框一般都是“模态窗口”,即在没有对当前弹出的对话框进行确认的时候,不能继续往下操作。 一个对话框一般包含几个部分: 背景图、两个按钮(个数可定制)、标题、文字内容 。我们需要使对话框为模态窗口,并设置弹出效果。下面来说说创建弹出对话框的要点: 1、弹出层的触摸优先级,操作与显示相一致 因为弹出对话框是“模态窗口”,所以我们需要设置触摸优先级来保证对话框是模态的。 在这里我们以CCMenu作为对话框按钮的操作实现,我们知道CCMenu 的默认触摸级别是-128,那么我们的【弹出层】触摸级别该设置为多少? 在我们设定触摸级别时,请记住一句话,操作与显示相一致。此话何意?现在设想这样一种情况,我们为了屏蔽弹出层以外所有的层的操作,而将弹出层级别置为 -129 ,这样便保证了它是模态的了(一般而言,除了 CCMenu 的级别,用户自定义也无需这么大),但是如果当前弹出层上方还有其它的层(也可以是弹出层的父节点上方有其它层,如多层的 UI 设计),并且其上也有 CCMenu 按钮,那么就出现了显示在 弹出层上放层中的 CCMenu 按钮不能点击,这不科学!实际,在弹出层的 CCMenu 也不能点击

cocos2d-x 3.0 alpha1 引用(#include "cocos-ext.h")时出错

心已入冬 提交于 2019-12-02 06:15:40
cocos2d-x 3.0 alpha1 在提供的 模板示例中引入【#include "cocos-ext.h"】编译出现错误。 【d:\cocos2d-x\cocos2d-x-3.0alpha1\extensions\gui\ccscrollview\ccscrollview.h(30): fatal error C1083: Cannot open include file: 'extensions/ExtensionMacros.h': No such file or directory (..\Classes\HelloWorldScene.cpp)】 错误信息是 找不到【extensions/ExtensionMacros.h】文件信息。 cocos2d-x 3.0 alpha0 版本上测试时没有发现这个问题。 解决说明: 【cocos2d-x-3.0alpha1\template\multi-platform-cpp】工程中设置环境变量。 项目名【HellCpp】右键【Properties】->【Configuration Properties】->【c/c++】->【General】 在【Additional Include Directories】项中新增设置项【$(EngineRoot)】 保存之后,重新编译。 希望在下一版更新中添加此环境设置 。 来源:

COCOS2D-X: scale sprite

青春壹個敷衍的年華 提交于 2019-12-02 04:41:48
I want to set scale for a sprite by height of original image. And then the width of that sprite will follow by original ratio of that image. How can i do that. Thank for all your help. CCSprite has a member function virtual void setScale(float scale) Reference: setScale Just create a sprite, and call this function. CCSprite* bg = CCSprite::create("background.png"); this->addChild(bg,0); bg->setScale(2.0); bg sprite will be twice bigger than the origin one. use setScale function of CCSprite e.g - CCSprite *Sprite = CCSprite::create(WHEEL_SPRITE); Sprite->setScale(DIRECTOR_VISIBLE_HEIGHT*0.65