Cocos2D-X学习
文章平均质量分 65
Ms1019
这个作者很懒,什么都没留下…
展开
-
cocos2d-x学习之路(8)--重构项目
这个项目写到现在所有的功能都在HelloWorldScene中完成,代码非常臃肿,所以需要对代码进行重构:(1)分离场景和图层新建两个类GameScene,继承CCScene,负责场景的创建以及对场景中的对象进行管理。GameLayer继承CCLayer负责绘制地图,Hero,战斗动画等#pragma once#include "header.h"#include "GameLay原创 2013-06-09 23:15:03 · 1173 阅读 · 0 评论 -
学习cocos2d-x之路(3)--创建第一个场景
创建我的第一个场景 运行 install-templates-msvc.bat,VS2010将会安装cocos2D-X的模板,新建项目时可以直接建立一个HelloWorld应用。删除HelloWolrldScene.cpp中不需要的部分,使用Tiled地图编辑器绘制地图后保存到工程目录Resource下,在HelloWorld::init()中创建地图:CCTMXTile原创 2013-06-04 00:18:02 · 1390 阅读 · 0 评论 -
cocos2d-x学习之路(7)--Shaer的使用
Shaer的使用 由于纹理图的背景色为黑色,所以英雄的周围总是有一圈黑框,Dierctx中直接提供了去除背景色的函数,但是cocos2d-x却没有,所以要解决这个问题只能通过两种方法,一是美工做图的时候直接使背景色透明,二是自己写Shader来去除背景色。Cocos2d-x在类CCNode中提供了着色器的 成员变量,而CCSprite继承与CCNode,因此可以通过继承CCSprite原创 2013-06-08 10:59:47 · 1622 阅读 · 0 评论 -
cocos2d-x学习之路(13)--交叉编译到Android的注意事项
使用./build_native.sh编译的时候可能出现下面的错误:/Users/xxx/AndroidSDK/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androide原创 2013-06-18 09:07:57 · 1257 阅读 · 0 评论 -
学习Cocos2D-x之路(2)--学习第一个例子
第一个例子—HelloWorld 在vs2010中启动HelloCpp,看到如下窗口暂时不知道什么原因,图片大小与窗口并不匹配,点击右下角按钮可以退出。在Classes目录下有5个文件,在AppMaCros.h中定义了在不同平台下资源的大小。类AppDelegate继承了CCApplication,定义了三个方法: virtualbool applicationD原创 2013-06-03 16:56:24 · 1537 阅读 · 0 评论 -
学习cocos2d-x之路(4)--实现Hero在各个方向移动
为了实现在4个方向Hero的运动,创建枚举变量typedef enum{ keyDown=0, keyLeft=1, keyUp=2, keyRight=3, }HeroDirection; 注意: 此处枚举变量的设置要按照英雄图片中的方向设置,需要定义在类声明中。将createHeroSprite(),进行修改,声明为 cocos2原创 2013-06-04 22:31:18 · 2033 阅读 · 3 评论 -
学习cocos2d-x之路(5)--实现屏幕滚动
锚点:可以理解为在图片内部的相对位置。例如cocos2d-x的默认锚点是 (0.5,0.5)也就是以图片的中心为坐标, 到目前为止,Hero的行动并没有在预想的格子内,产生的原因就是因为锚点,如果我们设置坐标为 heroSprite->setPostion(ccp(0,0)),就会出现下面的效果:解决的方法是直接设置坐标为heroSprite->setPosition(ccp(原创 2013-06-05 17:51:56 · 1275 阅读 · 0 评论 -
cocos2d-x学习之路(14)--屏幕适配
屏幕适配是所有手机应用都需要解决的问题,在cocos2d-x 2.0之后的版本提供了相应的解决方法。 设置屏幕分辨率 cocos2d-x 2.1版本设置分辨率在main.cpp中,通过改变FrameSize模拟相应的分辨率 CCEGLView* eglView = CCEGLView::sharedOpenGLView(); eglView->setF原创 2013-07-02 13:20:42 · 907 阅读 · 0 评论 -
cocos2d-x学习之路(15)--CCTaleView的使用
cocos2d-x 2.1 用CCTableView替换了原本的CCListView。为了使用CCTableView达到想要的功能,费了整整一天的功夫,个人感觉这个框架用来添加静态的表格还是比较方便的,但是如果要动态增加表格cell 或者修改表格cell的值就各种bug.例如我要添加10个cell,但是我希望每点击一次按钮添加一个,表格可视范围是5个,当表格处于表格的可视范围内时没有问题,但是超过原创 2013-07-21 17:53:25 · 1018 阅读 · 0 评论 -
学习cocos2d-x 之路 (1)--了解cocos2d-x
学前感言: 很久以前就听说过cocos2d的大名,知道它在手机游戏开发中处于主导地位,但是今天是真正意义上第一次接触。当前手机游戏市场十分火爆,我想对于任何一个对游戏感兴趣并且准备投身手机游戏开发的人学习这款引擎都是必要的。 从百度百科上阅读了cocos2d-x相关介绍,Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,Co原创 2013-06-03 16:49:38 · 2111 阅读 · 1 评论 -
[cocos2d-x 学习] Windows下环境配置&交叉编译到android平台
前言:每一个新东西,当然会从配置开发环境开始,cocos2d-x环境配置不麻烦,记录Win下android,vs2010 + cocos2d-x的开发环境配置。我写的简短,尽量写有用东西,让人看的舒服,快速。准备的东西1、vs2010,cygwin2、cocos2d-x开发包,现在最新版本是 v2.0.33、Android SDK(假设你已经搭配好SDK开发环境),NDK(an转载 2013-06-16 16:17:29 · 1027 阅读 · 0 评论 -
学习cocos2d-x之路(6)--Tilemap的碰撞检测
Tilemap的碰撞检测 到目前需要检测两个部分,一是地图的边界,二是地图中的墙壁。我的Tilemap分为两个图层,第一层为地板,第二层为墙,cocos2d-x提供了函数检测目标位置是否为墙。 首先将英雄坐标转化为Tilemap坐标 CCPoint HelloWorld::positionToTileCoord(cocos2d::CCPoint cocosCoord ){原创 2013-06-06 22:57:55 · 3004 阅读 · 0 评论 -
cocos2d-x学习之路(9)--重构项目(2)
项目已经分离出了GameScnene,GameLayer和GameMap类,接下来分离出一个Hero类因为Hero类今后为保存Hero的很多其他属性,例如血条、光环,也就是说需要在Hero中添加子节点,所以Hero不继承CCSprite,而是继承CCNoe,Hero精灵作为成员变量。再将其他的相关属性添加到Hero类中,在heroMove()方法中,原先由精灵通过CCSpawn同时控制动作原创 2013-06-10 15:56:20 · 1231 阅读 · 0 评论 -
学习cocos2d-x之路(11)--JumpTo和JumpBy
CCJumpTo和CCJumpBy属于延时动作,即经过一段时间才能完成的动作CCJumpTo:把某一CCSprite跳到某一位置CCJumpBy:把某一CCSprite跳起一段距离,它有一个方法reverse,它让对象按原路径返回 创建一个Layer来实验这两个类的使用,然后直接在前面创建的GameScene初始化TestLayer并添加为子节点,即可看到效果class Tes原创 2013-06-12 23:52:53 · 9461 阅读 · 0 评论 -
cocos2d-x学习之路(10)--重构项目(3)
项目已经被分成了很多类,但是各个类之间经常需要交互,如果通过传参的方法调用将会非常麻烦,类GameMap,GameLayer,Hero我们只需要创建一个实例,所以创建一个全局单例类来管理class GameLayer;class GameMap;class Hero;class GClassManager : public Singleton{public: GClassManag原创 2013-06-12 01:47:20 · 1179 阅读 · 0 评论 -
cocos2d-x 物理引擎BOX2d学习
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man在游戏中我们经常要加入物理碰撞等和物理有关的内容,在游戏中加入物理引擎可以使我们的游戏更加真实,为玩家展示一个更真实的世界,cocos2d-x支持两个物理引擎Box2d和Chipmunk,本文介绍box2d。Box2D 是用可移植的 C转载 2013-06-13 16:15:52 · 706 阅读 · 0 评论 -
cocos2d-x学习之路(12)--物理引擎box2d使用
box2d是cocos2d-x中的一款物理引擎,通过box2d可以方便的构件一个物理世界,并给世界中的物体添加物理属性为了测试物理引擎的使用,在之前的TestLayer中继续进行代码编写要使用box2d,首先要创建世界//获取屏幕大小 CCSize winSize=CCDirector::sharedDirector()->getWinSize(); //创建一个物理世界,需要原创 2013-06-13 16:52:21 · 994 阅读 · 0 评论 -
学习cocos2d-x之路(12)--添加敌人和战斗
使用Tiled地图编辑器编辑原本的地图,在地图中添加enemy图层,并添加图块,即可完成敌人的添加。为了完成Hero与Enemy的碰撞检测,创建一个Enemy类用来保存Enemy的Gid和positionclass CEnemy : public CCObject{public: CEnemy(); ~CEnemy(); virtual bool init(); CCPoint原创 2013-06-14 16:55:40 · 1480 阅读 · 0 评论 -
关于cocos2dx,多个图块集下的CCTMXTiledMap要注意的一个小地方
转自: http://miraklelhj.i.sohu.com/blog/view/227380352.htm 最近在开发《三国》的战场地图,为了提高开发速度,果断使用CCTMXTiledMap拼接地图。美术画好图块后,再用TileMap自带的编辑器画好关卡,地图就生成了,简单方便,以下是我对各区域的读法,以防大家不理解我在说啥…PS:编辑器下载地址:http://w转载 2013-06-15 18:43:48 · 1747 阅读 · 0 评论 -
cocos2d-x学习之路(16)--使用libcurl下载图片
cocos2d-x提供了curl的封装类,只需要引包和加入库文件就可以直接使用。利用libcurl可以简单方便的实现获取网络的数据,发送请求等。用libcurl实现下载图片并不复杂,可惜网上很少有资料,费了好大力气才完成这个功能。首先定义两个全局变量 unsigned char buffer[200000]; //接受图原创 2013-08-12 11:56:32 · 1221 阅读 · 0 评论