cocos2d-x

【cocos2d-x 手机游戏开发】在VS2005下运行Cocos2d-x

旧时模样 提交于 2019-12-01 17:58:23
Cocos2d-x 的开发包中并未给出 VS2005 的工程文件。不巧我的电脑中只装了 VS2005 。学习心切,这可怎么办啊?没关系。只要您稍花点时间,也可以让 Cocos2d-x 在 VS2005 中运行起来。 首先。将cocos2d-win32.vc2008.sln复制一份重命名为 cocos2d-win32.vs2005.sln. 然后用记事本打开它。将“ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008”一句改为“Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005”。保存文件。 然后。到 Box2D,chipmunk,cocos2dx,CocosDenshion,HelloLua,HelloWorld,lua,tests 目录中的 proj.win32 找到相应的工程文件各复制一份重新命名。如 Box2D.Win32.vcproj 复制文件重命名为 Box2D.win32.vs2005.vcproj 。用记事本打开。将 <VisualStudioProject ProjectType="Visual C++" Version="9.00" 修改为

Cocos2d-x入门之旅[2]精灵

◇◆丶佛笑我妖孽 提交于 2019-12-01 17:17:43
精灵就是cocos是屏幕上移动的对象,它能被控制,比如我们HelloWorld场景的这个图片就是 精灵(Sprite) 怎么才算精灵?你能控制它的,就是一个精灵,否则就只是一个节点(Node) 准确的说,精灵是一个 能通过改变自身的属性:角度,位置,缩放,颜色等,变成可控制动画的 2D 图像 精灵很容易被创建,它有一些可以被配置的属性,比如: 位置,旋转角度,缩放比例,透明度,颜色 ,等等 auto mySprite = Sprite::create("xxxxxx.png"); // 改变位置 mySprite->setPosition(Vec2(500, 0)); // 设置旋转角度 mySprite->setRotation(40); // 设置缩放比例 mySprite->setScale(2.0); // 设置锚点 mySprite->setAnchorPoint(Vec2(0, 0)); 创建精灵 我们的HelloWorld直接使用了一张图像来创建精( PNG, JPEG, TIFF, WebP ,都可以),但也有一些其它的方式,比如使用 图集 和 精灵缓存 创建 图片创建 回一下HelloWorld场景里的代码 auto sprite = Sprite::create("sinnosuke.png"); 精灵会使用整张图像, 图像是多少的分辨率

关于cocos2d-x几种画图方法的用法与思考

℡╲_俬逩灬. 提交于 2019-12-01 16:26:53
CCRenderTexture 自己的理解 CCRenderTexture类似一张空白的“画布“,用户通过自定义笔刷(CCSprite*),在touch事件中把笔刷的移动痕迹“记录”起来,从而“画”出各种艺术效果。记录方法很简单,首先CCRenderTexture调用自己的begin()函数,开启“记录”功能,然后调用笔刷->visit()把自己”画“在这张画布上,最后CCRenderTexture调用end()结束记录,那就OK了。 这里我想CCRenderTexture是通过把笔刷的纹理叠加到自己的纹理(Texture)里,而不是不断创建新纹理,所以消耗比较低,即使画得很频繁,帧数也能保持稳定,是个很赞的类。 CCRenderTexture由于只要begin()开启“记录”功能后,任何之后的CCNode*对象只要调用了visit(),就能将自己“画”在其身上。所以,一般游戏的截屏功能,完全可以使用CCRenderTexture的来实现,具体可以看tests里例子,cocos2d-x已经提供了相关例子,看看源代码就能搞明白的。 优点 用CCRenderTexture可以很简单的实现出理想的画图效果(只要搞一张很小的笔刷图,然后用CCSprite载入来,再适当调用一个CCSprite的visit()就行了),帧数消耗低,还很方便实现出游戏的截屏功能,做《你画我猜》这种项目

Cocos2d-x 3.x的Windows Phone 8工程

萝らか妹 提交于 2019-12-01 15:19:22
Cocos2d-x 3.x中我们使用的Cocos2d-x 3.2,它提供了Windows Phone 8平台的支持。下面我们介绍一下在Cocos2d-x 3.2中如何生成Cocos2d-x的Windows Phone 8工程,以及如何使用等问题。 生成Windows Phone 8工程 我们可以通过Cocos2d-x提供的cocos new工具生成多平台模板工程。如果我们的工程名为HelloCpp,则生成之后的目录结构如下图所示,其中的proj.wp8-xaml文件夹内容,如后图所示,其中HelloCpp.sln可以启动Cocos2d-x Windows Phone 8工程。 生成Windows Phone 8工程 proj.wp8-xaml文件夹 提示 如果你使用的是cocos2d-x-3.2alpha0版本,解决方案编译的过程中会发生CCSprite3DDataCache.cpp文件无法找错误, 请在Visual Studio打开libcocos2d工程在3d目录下右键删除CCSprite3DDataCache.cpp和CCSprite3DDataCache.h。 成功启动工程后,看到如下图所示的工程结构,其中HelloCpp启动工程,它是一个Window Phone 8工程,使用的C#代码编写。HelloCppComponent中的Classes是需要修改的内容

Cocos2d-x入门之旅[1]场景

吃可爱长大的小学妹 提交于 2019-12-01 14:10:50
在游戏开发过程中,你可能需要一个主菜单,几个关卡和一个END的界面,如何组织管理这些东西呢? 和其他游戏引擎类似,Cocos也使用了 场景(Scene) 这个概念 试想象一部电影或是番剧,你不难发现它是被分解为不同场景或不同时间线的,这些部分就是一个又一个的场景 参考: https://www.cnblogs.com/NightFrost/p/11688854.html 场景的存储结构 为了解释场景的结构,我们先不看我们过于简单的helloworld场景,看下面这个官方文档的场景: 这是一个主菜单场景,这个场景是由很多小的对象拼接而成,所有的对象组合在一起,形成了你看到的结果 场景是被 渲染器(renderer) 画出来的,渲染器负责渲染精灵和其它的对象进入屏幕,那渲染器怎么知道什么东西要渲染在后,什么东西要渲染在前呢? 答案是通过 场景图(Scene Graph) 实现 场景图(Scene Graph) Cocos2d-x使用 场景图(Scene Graph) 这一数据结构来安排场景内渲染的对象,场景内所有的 节点(Node) 都包含在一个 树(tree) 上: Cocos2d-x使用 中序遍历 ,先遍历左子树,然后根节点,最后是右子树 中序遍历下图的节点,能得到 A, B, C, D, E, F, G, H, I 这样的序列 现在我们再看这个游戏场景: 分解这场景为5个部分

Cocos2d-x-v3坐标体系

不打扰是莪最后的温柔 提交于 2019-12-01 13:58:56
Cocos2d-x坐标体系 cocos2d引擎是一款非常优秀的扩平台的游戏开发引擎,在apple游戏榜上,有很多排名靠前的游戏都是由他创造出来的,他也有一套十分方便的坐标体系。 一、UI坐标体系 UI坐标体系相对于移动开发人员来说再熟悉不过了,在iOS系统中,它就是frame体系,即坐标(0,0)点位于屏幕的左上角,向右x增大,向下y增大。 二、OpenGL坐标体系 OpenGL坐标系是cocos2d中使用的坐标系,它更接近于数学上的坐标系,即(0,0)点位于屏幕的左下角,往左x增大,往上y增大。这套坐标系统也更符合物理世界的逻辑,便于游戏的开发。当然,这并不是说cocos2d中所有的坐标都是采用这个体系标准的,在手指点击事件层,接收到点击坐标点的坐标就是采用UI坐标系表示的。 三、世界坐标系 简单的理解,世界坐标系就是绝对坐标系,在cocos2d中,精灵的坐标是相对于其父视图而言的,是相对的坐标,世界坐标则是统一绝对的坐标,在项目中是固定的。 四、相对坐标系 最常用的坐标体系,任何类设置的坐标都是相对于其父视图原点的坐标。 五、坐标系的转换 由于UI坐标系与OpenGL坐标系的差异,在开发中,我们有时需要其两个标准的相互转化,cocos2d中也未我们提供了相应的方法: Vec2 Director ::convertToGL( const Vec2 & uiPoint);

[cocos2d-x]I have an error when I try to run 'python android-build.py -p 19 cpp-tests' in Windows 10

廉价感情. 提交于 2019-12-01 13:55:14
When i try to run the command python android build -p cpp-tests , i'm getting an error as in the image: Before this, I had another error message about Android SDK Tools version compatiblity. So, I just replaced sdk version form 26.0.0 to 25.2.3 and it worked. But for this i'm not getting any solution. Any help would be appreciated. Thank You. #include <unistd.h> header is missing in ProcessCpuTracker.cpp file for NDK v15, there is an issue reported for the same. Either you downgrade NDK to previous version r14 or apply patch by yourself. Patch will be included in official release of 3.16. 来源:

cocos2d-x 系统学习cocos(1)

时光毁灭记忆、已成空白 提交于 2019-12-01 13:44:47
简析HelloWorld场景 以前使用cocos2d-x 3.14的时候,HelloWorld并不是一个场景类,而是一个图层类,当时的HelloWorld::createScene()是长这样的 Scene* HelloWorld::createScene() { auto scene = Scene::create(); auto layer = HelloWorld::create(); scene->addChild(layer); return scene; } 而现在的3.17的HelloWorld::createScene()长这样 Scene* HelloWorld::createScene() { return HelloWorld::create(); } 区别就是HelloWorld本身已经是一个场景了,不需要另外生成一个场景再将HelloWorld加到场景中作为子节点 HelloWorld的布局 HelloWorld场景中有一个cocos的logo,一个关闭按钮,一个HelloWorld的字样,这些小物体都是在HelloWorld::init()中生成的 基类的初始化 我们向HelloWorld场景添加东西之前,需要先调用基类Scene类的初始化函数,然后获得一下visibleSize和origin备用 bool HelloWorld::init() { if

Primitives and sprites Z index in Cocos2D-x 3.0 is not consistent?

萝らか妹 提交于 2019-12-01 13:18:17
I have two layers. Each layer has a primitive drawing in it with OpenGL like this: void Layer1::drawPolygon() { glLineWidth(1); DrawPrimitives::setDrawColor4B(255,255,255,255); DrawPrimitives::setPointSize(1); // Anti-Aliased glEnable(GL_LINE_SMOOTH); // filled poly glLineWidth(1); Point filledVertices[] = { Point(10,120), Point(50,120), Point(50,170), Point(25,200), Point(10,170) }; DrawPrimitives::drawSolidPoly(filledVertices, 5, Color4F(0.5f, 0.5f, 1, 1 ) ); } When I addChild these layers to a scene and set Z orders 1 and 2, I see that I can bring one primitive on top of another and vice

[cocos2d-x]I have an error when I try to run 'python android-build.py -p 19 cpp-tests' in Windows 10

和自甴很熟 提交于 2019-12-01 12:55:02
问题 When i try to run the command python android build -p cpp-tests , i'm getting an error as in the image: Before this, I had another error message about Android SDK Tools version compatiblity. So, I just replaced sdk version form 26.0.0 to 25.2.3 and it worked. But for this i'm not getting any solution. Any help would be appreciated. Thank You. 回答1: #include <unistd.h> header is missing in ProcessCpuTracker.cpp file for NDK v15, there is an issue reported for the same. Either you downgrade NDK