Cocos2dx一步步学习笔记
标哥-iOS攻城狮
现从事iOS开发,业余研究HTML5+CSS3+PHP+Mysql,cocos2dx中...
展开
-
Cocos2dx入门小游戏---Runner教程
本人初学cocos2dx,网上找了个例子,写一遍,自己领悟一翻,现在把自己的理解配上注释,一步步原创 2014-04-15 00:01:56 · 3082 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结十二:状态层设计
状态层是比较复杂的了,状态层需要与游戏层通信,因此也需要为游戏层先设计一个代理类,以便状态层遵守游戏层的代理,这样游戏层就可以在游戏开始、得分、结束时,告诉状态层做出相应的状态表现了。游戏层的代理类:/** * The delegate between status layer and game layer */class GameStatusDelegate {public: /**原创 2015-03-20 14:20:36 · 1165 阅读 · 0 评论 -
cocos2dxFlappyBird开发总结二:开发环境介绍
开发平台:Mac 10.10 Xcode 6.2 引擎:cocos2dx 3.3 final版 开发语言:C++本人一直都喜欢C++这个开发语言,于是使用C++完成了此项目。由于本人从事的是IOS开发,因此只写了IOS平台版本,源码会开放到github上,同志们可自行在拿到源码后,在Android上配置项目,再开源出来,希望大家都能继承开源精神!!!在MAC上开发,需要先下载 cocos2dx原创 2015-03-20 09:45:20 · 1498 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结六:设计共享小鸟类(主角)
主角小鸟有三种状态:idle、fly、die。 idle状态下,小鸟会挥动翅膀,原地不动,且不受重力的影响。 fly状态下,也就是游戏过程中小鸟移动,此状态下小鸟挥动翅膀飞行移动且受重力的影响。 die状态下,游戏结束了,小鸟死亡倒地了。 所以先设计一个枚举来表示小鸟的三种状态:/** * The leading role, bird's three action state */ty原创 2015-03-20 10:42:26 · 1022 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结八:载入场景LoadingScene
载入场景的目的是预加载资源,也就是在场景进入时,把资源加载到内存中:// 重写onEnter方法,场景载入时,会调用此方法,此外我们还需要调一下父类的方法,这个是API说明的,照做就行。// 方法其实功能是很简单的,就是先显示一张splash图片,然后异步加载图片资源,这个addImageAsync方法是引擎内部提供的API,可异步加载,这样就不会阻塞主线程了。void LoadingScene原创 2015-03-20 11:02:39 · 2027 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结四:资源管理类
游戏中需要全局管理很多的资源,如图片、音频文件等。下面我们设计一个骨骼资源管理类,名叫:AtlasLoader,设计为全局共享类,用于载入资源和通过资源名称获取精灵帧。下面先上头文件:#ifndef __EngryBird__AtlasLoader__#define __EngryBird__AtlasLoader__#include "cocos2d.h"/** * The struct o原创 2015-03-20 10:16:58 · 1513 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结五:说说屏幕适配
官方网站中有一篇教程,是关于适配问题的,笔者也是通过阅读后,才了解一些,希望大家好好阅读,必定受益匪浅: http://cn.cocos2d-x.org/tutorial/show?id=2360此处笔者采用的是ResolutionPolicy::EXACT_FIT,即完全显示。 由于背景图片资源的宽高为288:512,因此这里把设计分辨率为288:512,在bool AppDelegate原创 2015-03-20 10:30:56 · 2992 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结十三:数字特效类
由于显示得分其实是数字精灵的组合,因此需要先设计一个存储数字精灵数列的类:#ifndef __EngryBird__NumberSeries__#define __EngryBird__NumberSeries__#include "cocos2d.h"/** * This class is for ScoreNumber, and it will store a list of sprite原创 2015-03-20 14:44:08 · 1131 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结十四:常量定义
游戏层中水管等需要常量:#ifndef EngryBird_AppConstant_h#define EngryBird_AppConstant_h/** * The pipe has four state, using the following tag to mark. * > the state up * > the state down * > the state passed原创 2015-03-20 14:53:27 · 1115 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结十五:记录玩家得分
在游戏结束时,需要更新和获取最新得分。设计一个工具类,只有类方法,这样外部就能很方便地获取和更新值。/** * This is a help class, using to operate the user information conveniencely */class RecordTool {public: /** * Get the best score with a ke原创 2015-03-20 15:03:00 · 1214 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结十六:游戏层实现
游戏有三种状态,准备开始、游戏中、游戏结束,定义一个枚举来表示:/** * The status of game, it has three status. */typedef enum tag_GameState { /** The game hasn't started, but ready to start */ kGameStateReady = 1, /** The ga原创 2015-03-20 15:23:37 · 1050 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结十一:控制层功能设计
控制层的任务就是监听触摸事件,然后回调代理方法。控制层并不具体处理任务事情,只是抛给代理处理,因此需要先设计一个代理。代理只是一个方法,那就是触摸:/** * The delegate between option layer and game layer */class OptionDelegate {public: /** * When touch the option lay原创 2015-03-20 11:44:04 · 868 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结十:背景层设计
游戏背景层的任务是很简单的,只是根据当前时间来显示白天或者黑夜背景图,提供获取地面的高度方法。#ifndef __EngryBird__BackgroundLayer__#define __EngryBird__BackgroundLayer__#include "cocos2d.h"/** * The game background,showing the background informa原创 2015-03-20 11:32:42 · 923 阅读 · 0 评论 -
cocos2dx 定时器(schedule)的使用及Label类的使用
class HelloWorld : public cocos2d::Layer{public: // there's no 'id' in cpp, so we recommend returning the class instance pointer static cocos2d::Scene* createScene(); // Here's a differ原创 2014-04-20 21:54:43 · 3988 阅读 · 0 评论 -
第一个Hello world(1)
把新创建的空项目中的HelloworldScene类删除掉,自己写一个:#ifndef __HelloCpp__LoadingLayer__#define __HelloCpp__LoadingLayer__#include "cocos2d.h"/** @brief 游戏启动层类 * * 游戏启动会创建此类对象,通过工厂方法创建一个场景,并将自己(层)加入到场景中 */c原创 2014-04-07 22:36:39 · 902 阅读 · 0 评论 -
cocos2dx 一步步入门 CCMoveTo/CCMoveBy/CCRotateTo/CCRotateBy
// on "init" you need to initialize your instancebool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(!CCLayer::init()); // 添加关闭按钮 CCMenuItemImage *p原创 2014-04-13 21:09:48 · 4114 阅读 · 1 评论 -
cocos2dx3.1 + VS2013创建工程
开始准备学习cocos2dx,那么 就需要 先安装相应的工具,才能开始行动。我这里是使用了vs2013开发工具.首先到官网下载cocos2dx-3.x版本的引擎,注意,要下载就下载稳定版,如,3.1,3.2,别下载rc,beta等类型的版本,因为我们不知道这些过渡版本之间的差异。http://cn.cocos2d-x.org/download那么得先安装phthon2.7,可以原创 2014-12-21 11:16:23 · 4495 阅读 · 0 评论 -
cocos2dx 加载ExportJson
void TollgateScene::loadUI(){ auto UI = GUIReader::getInstance()->widgetFromJsonFile("res/LittleRunnerUI_1.ExportJson"); this->addChild(UI); auto button = Helper::seekWidgetByName(UI, "JumpButton原创 2014-12-29 00:26:15 · 8255 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结一:背景介绍
本人当前从事iOS开发,业余时间喜欢研究新的技术,便开始了这段旅程。 由于本人是菜鸟,本教程是参考OiteBoy同志的开源项目而写的,并非抄袭,亦非复制,而是让我这个菜鸟一步步与同是菜鸟的同志们一起探求cocos2dx引擎开发游戏的技术与技巧,同时也让我这个爱研究的同志,更深入地理解引擎。声明:高手可路过,如停留,请留下宝贵意见,或指导一下如何深入学习,提前感谢。如教程中出现任何问题,请联系我,或原创 2015-03-20 09:38:02 · 1688 阅读 · 1 评论 -
cocos2dx3.3开发FlappyBird总结三:项目剖析
Flaypp bird这个小游戏是很火热的,用这个小项目来学习,是非常不错的。 游戏中主要的角色: 主角:小鸟。 小鸟是主角,只有一只小鸟,因此设计小鸟类时,设计成全局共享的类,即通过单例方式获取小鸟对象。障碍物:水管 水管垂直方向是有两根的,一长一短,其实是同长的,只是修改了Y属性而已。地面: 地面是无限滚动的,直到游戏结束。游戏规则很简单: 与地面接触或者与水管接触视为游戏结束,小鸟原创 2015-03-20 09:48:59 · 1223 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结七:说说游戏流程
整个游戏的执行流程是这样的:初始载入LoadingScene: 这一步会把所有图片资源和音频资源都载入到内存中,当然这不是一种好的方式,不过这里项目较小,资源少,这种方式是可行的。 当资源载入完成时,会进入到下一步。下一步:切换到WelcomeScene,即显示欢迎界面,用户点击玩游戏按钮,进入到GameScene,这个是游戏主场景。玩家输了以后,可以不断重玩。GameScene:主场景,由背景原创 2015-03-20 10:54:12 · 1021 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结九:欢迎场景(WelcomeScene)
欢迎场景的任务是无限滚动地面,小鸟原地挥动翅膀,显示开始游戏按钮,点击时才开始玩游戏。先上图: 这个场景中,有一个标题:FlappyBird 一只小鸟,小鸟的颜色是随机生成三种中的一种 一个开始按钮 无限滚动的地面在初始化时,生成当前时间来显示白天还是黑夜背景。 // Get the current time, judge whether now is day or night t原创 2015-03-20 11:25:21 · 923 阅读 · 0 评论 -
cocos2dx3.3开发FlappyBird总结十七:结束语
教程到此也该结束了,如果您是认真看完此教程的有缘人,相信您一定会成为本行业的精英,但是我希望大家都能有开源精神,把自己的总结,自己领悟出来的知识,共享出来,大家一起学习,少走弯路。本人Github:https://github.com/632840804 本人QQ:632840804 本人Email:huangyibiao520@163.com写代码不易,写教程亦不易,且写且看且珍惜!!! 写原创 2015-03-20 15:32:18 · 960 阅读 · 0 评论