
Cocos2d-x从零到精通
文章平均质量分 75
记录学习cocos2d,从开始零基础到熟练精通,并做出好玩的游戏。
隔壁-老阳
仁强则无敌。。。
展开
-
Cocos2d-x移植Android 常见问题处理办法
1、函数、变量出现“could not be resolved ”问题出现此问题一般是没有找到cocos2d-x声明的头文件,在eclipse将cocos2d的头文件目录引入,包括工程目录、platform/android在hellocpp/main.cpp函数加入头文件#include "AppDelegate.h"#include "cocos2d.h"#include "原创 2014-06-05 14:29:33 · 2583 阅读 · 2 评论 -
哇!板球 源码分析四
遍历小球for(int i=0;icount();i++)//遍历小球 { //从arr获取每个小球及当前位置 BallTest* temp =(BallTest*)arr->objectAtIndex(i); CCPoint ballPoint = temp->getPosition();遍历守门员 for(int j=0;jcount();j++)//遍历守门员原创 2014-06-03 18:45:26 · 1420 阅读 · 0 评论 -
【Cocos2d-x 粒子系统】火球随手指飞起来
程序:创建球 sp1 = CCSprite::create("ball.png"); sp1->setPosition(ccp(10, visibleSize.height/2)); this->addChild(sp1); setTouchEnabled(true);让球飞起来吧,创建个简单粒子,点哪飞到哪void HelloWorld::ccTouchEnded(CCTo原创 2014-06-03 15:37:31 · 1515 阅读 · 0 评论 -
哇!板球 源码分析三
守门员出场守门员出场,每个守门员是从屏幕的右侧中间的位置随机方向向左侧移动FielderSprite* fielderSprite1 = FielderSprite::create("pic/fielder.png"); //守门员精灵初始位置为右侧中间位置 fielderSprite1->setPosition(ccp(GOALKEEPER_X, GOALKEEPER_Y))原创 2014-06-02 01:00:54 · 1847 阅读 · 0 评论 -
哇!板球 源码分析二
游戏主页面布局创建屏下Score标签pLabel = CCLabelTTF::create("Score", "Arial", TITLE_FONT_SIZE); //分数标签 //设置标签字体的颜色 pLabel->setColor (ccc3(0, 0, 0)); //设置文本标签的位置 pLabel->setPosition (原创 2014-05-30 18:44:48 · 1902 阅读 · 0 评论 -
哇!板球 源码分析一
游戏主菜单页面BeginLayer类封装该页面,init函数初始化该页面布景该页面背景 isDialog = false; setKeypadEnabled(true); //开启按键事件 CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint or原创 2014-05-30 13:47:45 · 2202 阅读 · 0 评论 -
Cocos2d-x 精灵碰撞检测(方法二)
将"Cocos2d-x 精灵碰撞检测(方法一)" update函数修改一下。使用精灵boundingBox函数获取直接精灵边界框, 不用自己计算精灵矩形大小了,还比较精确,然后调用intersectsRect计算2个精灵矩形是否存在集。代码:void HelloWorld::update(float delta){ //返回精灵边界框 CCRect cr1 = sp1->b原创 2014-05-29 11:42:20 · 3158 阅读 · 0 评论 -
Cocos2d-x 精灵碰撞检测(方法一)
声明函数碰撞检测函数,两个精灵和重写update bool isCollision( CCPoint p1,CCPoint p2,int w1,int h1,int w2,int h2 ); CCSprite *sp2; CCSprite *sp1; virtual void update(float delta); //重写触摸事件 virtual void regi原创 2014-05-29 08:29:03 · 4030 阅读 · 0 评论 -
横屏小游戏--萝莉快跑源码分析三
主角出场:初始化主角 hero = new GameObjHero(); hero->setScale(0.5); hero->setPosition(ccp(100,160)); hero->setVisible(false); addChild(hero,1);进入GameObjHero类ccp文件创建主角及动作 this->setC原创 2014-05-28 18:24:04 · 2645 阅读 · 1 评论 -
横屏小游戏--萝莉快跑源码分析二
游戏地图: init()函数初始化游戏地图 map = new GameObjMap(); map->setAnchorPoint(ccp(0,1)); map->setPosition(ccp(0,size.height)); addChild(map,0);进入GameObjMap类ccp文件,地图初始化过程雾和山水图组成一张游戏背景,创建原创 2014-05-28 11:29:43 · 2333 阅读 · 0 评论 -
横屏小游戏--萝莉快跑源码分析一
菜单主页面: 主菜单页面背景 CCSprite* bg = CCSprite::create("MainMenu.png"); bg->setScale(0.5); bg->setPosition( ccp(size.width/2, size.height/2) ); this->addChild(bg, 0,0);菜单按钮及其效果,单击事件原创 2014-05-27 18:20:07 · 2590 阅读 · 2 评论 -
Cocos2d-x 让精灵随手指移动起来二(简单实现)
void HelloWorld::ccTouchMoved(cocos2d::CCTouch *touch, cocos2d::CCEvent *event){ CCSize winSize = CCDirector::sharedDirector()->getVisibleSize(); if (m_ship) { CCPoint pos = touch->getDelta原创 2014-05-26 23:59:21 · 2292 阅读 · 0 评论 -
竖屏小游戏--喵星战争源码分析【完整】
Ccp文件介绍:GameMenuScene.cpp游戏主菜单GameMainScene.cpp游戏主页面GameObjHero.cpp主角GameHeroBullet.cpp主角的子弹GameObjEnemy.cpp敌人GameEnemyBullet.cpp敌人的子弹GameAboutScene.cpp关于页面GameMark.cpp游戏分数 运行游戏进入游原创 2014-05-25 11:06:12 · 4058 阅读 · 1 评论 -
Cocos2d-x Box2D物理引擎编译设置
在解决方案找到TestCpp项目,打开其属性=》C/C++ =》预处理器==》预处理器定义, 添加“CC_ENABLE_BOX2D_INTEGRATION=1”, 修改“CC_ENABLE_CHIPMUNK_INTEGRATION=0”, 打开libExtensions项目同样找到预处理器定义, 添加“CC_ENABLE_BOX2D_INTEGRATION=1” , 删除“CC_ENABLE_CH原创 2014-05-23 18:39:11 · 1243 阅读 · 0 评论 -
【雷电】源码分析(三)-- 游戏背景
背景图至上往下无限滚动// 背景图中障碍物, 由tiled编辑的 m_backTileMap = CCTMXTiledMap::create("level01.tmx"); addChild(m_backTileMap, -9); m_backTileMapHeight = m_backTileMap->getMapSize().height * m_backTileMap->getTi原创 2014-05-23 14:55:26 · 1588 阅读 · 0 评论 -
Cocos2d-x 游戏存档
游戏存档功能可以保存游戏中数据,让玩家游戏可以延续, 单机游戏更为重要。而CCUserDefault可以作轻量级数据库使用,用来存储数据,支持数据类型bool,int, float, double, string.存储数据 CCUserDefault::sharedUserDefault()->setStringForKey("string", "value1"); //参数顺序:键,对应原创 2014-05-22 18:37:41 · 2966 阅读 · 0 评论 -
Cocos2d-x Tiled地图编辑器(二)精灵走动起来、碰撞检测
图:程序代码:头文件声明函数及变量 void registerWithTouchDispatcher(void); bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent); void setViewpointCe原创 2014-05-21 14:16:17 · 3075 阅读 · 0 评论 -
Cocos2d-x Tiled地图编辑器(一)基本使用
Cocos2d-xTiled地图编辑器(一)基本使用Tiled地图编辑器支持普通视角地图和45度角地图, 它生成的地图数据文件cocos2d-x完美的支持,Tiled地图编辑器是一个以普通使用为目标地图编辑器,它使用简单并且可以轻松地在不同的游戏引擎中使用,其特性有:使用基于XML编码形的地图数据文件使用可以在不同游戏引擎中通用支持普通、45度两种视角对象的放置位置可以精确到像素原创 2014-05-19 00:50:20 · 3286 阅读 · 0 评论 -
Cocos2d-x 多点触摸
多点触摸的实现步骤与单点触摸类似,setTouchEnabled(true)开启触摸功能,注册触摸事件,重载多点触摸函数:ccTouchesBegan(开始)、ccTouchesMoved(移动)、ccTouchesEnded(结束)、ccTouchesCancelled(系统中断取消触摸事件),每个多点触摸函数都可以通过遍历整个CCSet来获得所有的触点。 程序代码:头文件加入触摸重原创 2014-05-18 01:03:58 · 2221 阅读 · 0 评论 -
Cocos2d-x 渲染自定义字体--bmfont工具简单使用
1、下载bmfont工具地址:http://www.angelcode.com/products/bmfont/2、安装启动,,右边为字体库,可根据需要选择3、选中所需要所字符生,配置“Options->Export Options”, 弹出设置选项,配置生成fnt文件及png图片:3、生成了.fnt 和.png文件,copy至工程Resources目录下,添加测试代码:原创 2014-05-17 23:58:58 · 1106 阅读 · 0 评论 -
Cocos2d-x 文本渲染
CCLabelAtlas、CCLabelBMFont、CCLabelTTF类都是继承 CCLabelProtocol类,即可以使用系统字,也可以自定义渲染字体。CCLabelAtlas类使用图片作为文字的一种方式, 通过图片直接定义CCLabelAtlas *label0 = CCLabelAtlas::create("ASDE test ", "tuffy_bold_italic-cha原创 2014-05-17 22:10:04 · 1342 阅读 · 0 评论 -
【Cocosd2d-x CCMenu菜单之二】
程序代码:bool HelloWorld::init(){ ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize visibleSize = CCDirector::s原创 2014-05-16 13:42:12 · 1090 阅读 · 0 评论 -
【Cocosd2d-x CCMenu菜单之一】
CCMenu是一个菜单项的容器,用来装载各种菜单项, 菜单项可以是图片、系统字、或者自定义字体。菜单项常用设置: void alignItemsVertically(); //垂直方向默认间隙排列, 5个像素 void alignItemsVerticallyWithPadding(float padding);//垂直方向以padding间隙排列 void alignItemsHor原创 2014-05-15 18:28:11 · 1120 阅读 · 0 评论 -
cocos2d-x 绘制图形
绘制图形如下: 程序代码:需要重新定义父类虚函数draw()1、在HelloWorldScene.h头文件加入: virtual void draw();2、定义实现:void HelloWorld::draw(){ //add your code.... CHECK_GL_ERROR_DEBUG(); CCSize size = CC原创 2014-05-15 00:07:34 · 2526 阅读 · 0 评论 -
Cocos2d-x 单点触摸--让精灵随手指移动起来
效果图:程序代码:bool HelloWorld::init(){ ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize visibleSize =原创 2014-05-12 22:19:27 · 3531 阅读 · 0 评论 -
【雷电】源码分析(二)-- 进入游戏攻击
效果图:程序分析:初始化GameLayer场景触摸,背景、音乐、UI及定时间器bool GameLayer::init(){ if (!CCLayer::init()) { return false; } // 开启触摸 this->setTouchEnabled(true); // 创建数组,需要原创 2014-05-12 00:23:43 · 1531 阅读 · 0 评论 -
【光晕动画】
效果图:尖:原创 2014-05-11 13:48:56 · 1254 阅读 · 0 评论 -
【Cocos2d TestCpp实例模仿二】-- ActionsTest
缓冲动作原创 2014-05-10 23:42:33 · 754 阅读 · 0 评论 -
【Cocos2d TestCpp实例模仿一】-- ActionsTest
一、TestCpp实例ActionsTest 模块中ActionManual动作素材原图:动作效果图:程序代码:bool HelloWorld::init(){ if ( !CCLayer::init() ) { return false; } CCSize visibleSize = CC原创 2014-05-08 00:06:56 · 1256 阅读 · 0 评论 -
cocos2d+TexturePackerGUI动画制作
程序效果图:1、下载安装TexturePackerGUI地址:http://www.codeandweb.com/texturepacker2、制作plist文件和png图片打开TexturePackerGUI,将动画素材拖拽至TexturePackerGUI图片区,填写Output路径及名称,点击工具栏Publish,生成plist、png文件,然后将此2文件放至原创 2014-05-07 01:07:01 · 2816 阅读 · 0 评论 -
【雷电】源码分析(一)-- 进入游戏开始界面
转载请注明出处:进入游戏开始界面效果图:源码分析:StartMenu场景--进入游戏开始界面初始化场景,包括初始Android按键,添加背景图片,添加logo图片,创建游戏菜单开始/设置/关于并添加其响应事件,初始化飞船漂移动画,背景音乐程序分析:bool StartMenu::init(){ if ( !CCLayer::init() ) {原创 2014-05-04 00:20:49 · 3821 阅读 · 3 评论 -
cocos2d-x 3.0 HelloWorld项目创建
1、cocos2d支持python,创建项目都可以用它自带的脚本, 所以第一步下载安装python, 然后配置系统环境变量, 让操作系统支持python脚本, 能找到二进制文件 地址: https://www.python.org/2、下载cocos2d-x 3.0 源码,解压 地址: http://www.cocos2d-x.org/原创 2014-05-01 14:53:37 · 1007 阅读 · 0 评论 -
【梦幻连连连】源码分析(二)
转载请注明出处:GameLayer场景界面效果: 源码分析: //GameLayer场景初始化,主要是初始化加载界面及背景音乐bool GameLayer::init(){ float dt=0.0f; if ( !CCLayerColor::initWithColor(ccc4(255, 255, 255, 255)))原创 2014-04-29 20:08:40 · 1633 阅读 · 0 评论 -
【梦幻连连连】源码分析(一)
进入游戏连连第一个场景,如下: 初始化该场景精灵所需的信息、背景/音效及图层UIbool HelloWorld::init(){ ////////////////////////////// // 1. super initfirst if (!CCLayer::init() ) { returnfalse;原创 2014-04-29 17:31:07 · 1744 阅读 · 0 评论 -
【winows7+android-ndk-r9+Cygwin 】cocos2dx 2.*游戏移植Android平台完全手册
此文档记录通过NDK+Cygwin将cocos2d-x游戏移植Android,所有安装采用x86_64版本,因为本win7就是64位,如果您熟悉linux环境那就更容易了。转载请注明出处: 安装包准备:android-ndk-r9-windows-x86_64.zip下载地址: http://developer.android.com/tools/sdk/ndk/index.htm原创 2014-04-25 22:27:00 · 1901 阅读 · 0 评论 -
【梦幻连连连】源码分析(三)-地图布局
先读取levelinfo.plist文件数据,缓存icon图片数据, 添加touch监听void MapLayer::initData(){ countCleared = 0; //读取plist数据文件 const char *plistPath=CCFileUtils::sharedFileUtils()->fullPathFromRelativeFile("le原创 2014-04-24 15:51:08 · 1208 阅读 · 0 评论 -
cocos2d-x 音乐/音效设置
cocos2d-x 游戏中声音 有两种 一种是背景音乐一种是音效 加载音乐 或者音效的时候 我们需要先缓存声音 #define EFFECT_FILE "effect1.wav" //音效 #define MUSIC_FILE "background.mp3" //音乐这两个宏代表了 音乐和音效的名称或者目录SimpleAud转载 2014-04-22 18:35:44 · 1192 阅读 · 0 评论 -
【梦幻连连连】源码分析(完)-寻路消除算法
连连看认为两个图片是否可消除条件:1、两个图片是同一类型的图片(在程序中表现为图片id一样)2、两个图片之间存在通路且此路是由不多于2个拐点 两个图片是同一类型的图片(在程序中表现为图片id一样) 代码://判断两个是否可以消除bool MapLayer::canClearTwo(cocos2d::CCPoint pointpre, cocos2d::CCPoint po原创 2014-04-22 15:12:36 · 1564 阅读 · 0 评论 -
【梦幻连连连】源码分析(四)-触摸处理
//触摸结束void MapLayer::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent){ CCPoint location = CCDirector::sharedDirector()->convertToGL(pTouch->getLocationInView()); //获取触摸屏幕的坐标 l原创 2014-04-22 11:05:42 · 1566 阅读 · 0 评论 -
coco2dx+vs2010 开发环境搭建
1、cocos2d支持python,创建项目都可以用它自带的下载python安装原创 2014-04-18 13:19:08 · 1646 阅读 · 0 评论