原文:http://www.xueguoliang.cn/typecho/index.php/archives/38/
cocos2d-x基础
基础
1.1 前言
大概了解下cocos先
1.1.1 cocos2d-x介绍
cocos2d-x是一个手机游戏开发引擎,使用C++开发,可以很方便的移植到各个平台,目前cocos2d-x支持
android,ios,windows,mac,linux等系统。
早先由阿根廷人开发python版本,后来苹果手机流行之后,阿根廷人又用OC改写了cocos2d,并称之为
cocos2d-iphone。
后来由国人将cocos2d-iphone用C++改写,并称之为cocos2d-x,这样使用cocos2d-x开发的游戏很容易被移
植到各个平台。
cocos2d-x框架图
data:text/html;charset=utf-8,%3Cdiv%20class%3D%22post-content%22%20itemprop%3D%22articleBody%22%20style%3D%22line-height%3A%201.5%3B… 2/13
1.1.2基础阶段学习目标和作品演示
了解cocos2dx
实现飞机大战
1.1.3 环境搭建
安装python2.7和配置python路径
安装vs2013
解压cocos2dx到某目录,比如d:\cocos\cocos2d-x
命令行进入cocos2d-x目录,执行setup.py
1.1.4 介绍cocos2dx开发包目录
build 工程目录
cmake makefile目录
cocos cocos2dx核心源代码目录
docs 文档目录
extensions 拓展代码目录,主要是GUI部分
external 外部开源库
licenses 外部开源库licenses
plugin 插件
templates 创建工程模板,创建工程使用的模板工程
tests 测试项目cpp-test代码在这里
tools 工具,创建工程的脚本就在这里
1.2 第一个工程
万丈高楼平地起
1.2.1 创建工程
cocos new ProjectName -l cpp
在当前目录下创建一个工程名字为ProjectName
cocos new ProjectName -l cpp -d d:\cocos
data:text/html;charset=utf-8,%3Cdiv%20class%3D%22post-content%22%20itemprop%3D%22articleBody%22%20style%3D%22line-height%3A%201.5%3B… 3/13
在d:\cocos目录下创建一个名字为ProjectName的工程
cocos new ProjectName -l cpp -d d:\cocos -p com.Orgnization.ProjectName
在d:\cocos目录下创建一个工程名为ProjectName,包名为com.Orgnization.ProjectName的工程
cocos new
查看cocos new命令的帮助
使用vs2013打开工程目录中的解决方案文件,对第一个工程进行编译和运行
1.2.2 介绍工程目录
Classes 跨平台游戏逻辑代码
cocos2d cocos引擎代码
proj.xxxx 平台相关的代码和工程文件
Resources 资源文件(图片、声音、脚本)
1.2.3 介绍详细代码
程序入口和AppDelegate
main函数通过虚函数调用到AppDelegate::applicationDidFinishLaunching
AppDelegate::applicationDidFinishLaunching()
这个是真正的入口函数,负责游戏的初始化,包括创建第一个场景
HelloWorld::init()
场景层的初始化,负责显示场景的信息
HelloWorld::menuCloseCallback(Ref*)
退出菜单的回调函数,负责程序退出
头文件和命名空间
cocos引擎定义cocos2d.h头文件中,并且使用了命名空间cocos2d,因此我们写的程序都应该包含cocos2d头
文件,并且需要使用cocos2d命名空间,
e USING_NS_CC using namespace cocos2d
初始化的调用过程
1.2.4 cocos设计理念
#include "cocos2d.h"
USING_NS_CC;
// #define USING_NS_CC using namespace cocos2d
data:text/html;charset=utf-8,%3Cdiv%20class%3D%22post-content%22%20itemprop%3D%22articleBody%22%20style%3D%22line-height%3A%201.5%3B… 4/13
cocos2dx的设计者将游戏划分为一个个片段组成:每个片段由Scene负责组织;片段内部的模块划分由
Layer负责组织;Scene和Layer虽然是游戏组织的一部分,但是它们一般并不可见、可见的部分如英雄、
怪物、道具由精灵负责抽象。
Director负责推动游戏进程的发展,切换场景是由导演来负责的
1.3 精灵
Sprite,游戏的灵魂
1.3.1 精灵的创建
精灵可以通过图片、纹理或者精灵帧作为参数来创建
Sprite::create()
Sprite::createWithTexture()
Sprite::createWithSpriteFrame()
cocos2dx使用create函数来创建对象,create函数调用了new,init,autorelease等方法,对对象
管理
1.3.2 精灵的属性
位置 Sprite::setPosition()
锚点 Sprite::setAnchorPoint()
旋转 Sprite::setRotation()
缩放 Sprite::setScale()
颜色 Sprite::setColor()
可见 Sprite::setVisible()
透明度 Sprite::setOpacity()
X翻转Sprite::setFlippedX()
Y翻转