1. 了解cocos2d-x。官网 : www.cocos2d-x.org
2. 搭建cocos2d-x。使用版本cocos2d-x 3.0 搭建环境教程:http://www.idcfree.com/article-1488-1.html
3. 无脑码农的cocos2d入门视频教程,视频使用版本coco2d-x 2.0.1 网址:http://wnmn.sinaapp.com/?cat=3
4. 无脑码农与龙灵修的cocos2d公开课。视频使用版本cocos2d-x 2.0.4 网址:http://wnmn.sinaapp.com/?cat=5
5. flappybird. flappybird的一个实现版本。网址:http://blog.csdn.net/column/details/flappybird.html
6. tiled地图的使用。
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/how-to-make-a-tile-based-game-with-cocos2d/part1/zh.md
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/how-to-make-a-tile-based-game-with-cocos2d/part2/zh.md
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/how-to-make-a-tile-based-game-with-cocos2d/part3/zh.md
在这篇教程中的忍者位置会显示有问题,要设置好忍者的锚点,并根据忍者的大小,修改忍者的位置。
另外,编译后的游戏中会显示一些黑线。要解决黑线问题见:http://www.cnblogs.com/jiackyan/archive/2013/04/14/3019927.html
7. TexturePacker使用。
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/how-to-use-texturepacker-to-optimize-the-spritesheet/zh.md
8. 物理引擎
3.0简化了物理引擎的使用。
(1)在cocos2d-x3.0里面如何使用物理引擎:弹球
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/intro-to-box2d-with-cocos2dx-tutorial-bouncing-balls/zh.md
(2)使用cocos2d-x3.0和物理引擎实现碰撞检测
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/how-to-use-box2d-for-just-collision-detection-with-cocos2dx/zh.md
该教程存在几个问题:
* 没有设置碰撞检测mask。具体设置见:http://www.cocos2d-x.org/docs/manual/framework/native/physics/physics-integration/zh
* 碰撞回调函数设置时,CC_CALLBACK_2 改为 CC_CALLBACK_1,并将onContactBegin 的第一个参数去掉。
* 因为目前存在的bug,当精灵的body设置为 body->setDynamic(false);时碰撞无法检测到。需要设置为true,设置当前的scene为带物理引擎的,并将其中的world设置为没有重力。m_world->setGravity(Vect::ZERO);
后两点的解决方案具体见:http://www.cocos2d-x.org/forums/6/topics/47452
(3)使用cocos2d-x3.0和物理引擎制作滚动背景
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/side-scrolling-the-background-in-box2d/zh.md
(4)使用cocos2d-x3.0和物理引擎制作简单的platformer游戏
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/simple-platformer-using-cocos2d-and-box2d-with-collision-detection/zh.md
(5)如何使用cocos2d-x3.0和物理引擎来制作一个Breakout游戏
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2dx-tutorial/part1/zh.md
https://github.com/chukong/cocos-docs/blob/master/tutorial/framework/native/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2dx-tutorial/part2/zh.md
该教程存在两个问题:
*. 检测屏幕触摸事件时,没有设置onTouchBegan,只有onTouchBegan的返回值为true,后面的操作move等才会执行,否则报错。在原文中加入:
listener->onTouchBegan = [&](Touch *touch, Event *unused_event)->bool { return true; };即可。
*. 存在(2)中同样的问题设置mask,修改回调函数类型,否则碰撞没有效果。
9. 重温flappy bird.
10. 重温cocos2d-x基础 http://subject.9ria.com/cocos2d0/index.html 内容有些老
11. cocoStudio 学习。
(1)基础 http://www.cocoachina.com/bbs/read.php?tid=194065
(2)Cocos2d-x 3.0版本添加CocoStudio库(VisualStudio)http://www.cocoachina.com/bbs/read.php?tid=194668&page=1
(3)CocoStudio Samples讲解(含操作及代码实现,覆盖各个编辑器)
http://www.cocoachina.com/bbs/read.php?tid=194293
*demomap 地图
需解决问题:
1)引【#include "cocos-ext.h"】头文件出现编译错误。解决方案:项目名【HellCpp】右键【Properties】~~>【Configuration Properties】~~>【c/c++】->【General】在【Additional Include Directories】项中新增设置项【$(EngineRoot)】保存之后,重新编译。
http://www.cocos2d-x.org/issues/3268
2)点击按钮始终存在问题,总是存在事件不能响应的问题。原因:alertpanel没有取消掉可点击选项,导致对地图层面的按钮产生了遮挡。
* SampleImageViewer 图片查看器
* demobag 背包
注意锚点,位置,世界坐标系,以及如何判断当前的点在某个控件的范围内。
* DemoShop 商店
* SampleUIAnimation UI动画(普通帧,关键帧)
* SampleFrameAnimation 普通帧,关键帧
* SampleCollision 骨骼动画
* SampleParticle 粒子系统
Note:ArmatureDataManager::getInstance()->addArmatureFileInfo("Hero.ExportJson");
armature = Armature::create("Hero"); 名字要一致,否则出现alert。
* SampleFlashImport 导入flash
* SampleChangeEquip 换装系统
* DemoGameScene 游戏场景
* SamplesSceneEditor 游戏场景2
* DemoCowboyGame 游戏场景3 - 牛仔演示
12. 游戏<别救我> 实例教程。 包含了一个较为详细的制作流程。包括中间使用的各种工具。
http://www.benmutou.com/archives/971