Cocos2d是一个比较流行的iphone游戏开发框架,据说在
AppStore 上已有超过 100 个游戏是基亍 Cocos2D-iPhone。其中 3 个由此 迚入过 TOP 10 的排名。其中的 StickWars 更是曾排名第一。
现在,让我们来开始Cocos2d的学习之旅吧!
一、安装下载
Cocos2d下载地址:
http://code.google.com/p/cocos2d-iphone/downloads/list
当前最新版本为1.0。本教程选用的是稳定版本0.99.5。
下载文件为targ.gz格式,将其解压到某个目录下,打开该目录,找到
install-templates.sh
文件,这个就是Cocos2d的安装脚本。
你可以直接在终端里运行这个脚本进行安装,但如果你的Xcode没有安装在默认目录
下,则你需要在命令中添加一个参数。
例如,你的Mac中可能同时存在一个Xcode版本(3.2.5),安装目录为:/Users/$yourname$/Developer,如果你想将Cocos2d安装到这个Xcode(3.2.5),则需要使用用命令:
./install-templates.sh
/Users/$yourname$/Developer
来进行安装。
安装完毕,你可以打开Xcode,新建Project,你会在User
Templates目录下看到多了4个Cocos2d Application模板(如果是0.99版本,则只有3个模板):
二、新建
cocos2d
Applications
项目
新建一个
cocos2d
Applications
项目,编译运行效果如下:
打开HelloWorldScene.h,可以看到如下代码:
#import
"cocos2d.h"
// HelloWorld Layer
@interface
HelloWorld : CCLayer
{
}
// returns a Scene
that contains the HelloWorld as the only child
+(
id
) scene;
@end
首先,import指令导入了cocos2d.h,在这个.h文件中,已经包含(import)了cocos2d的所有类。因此我们导入了cocos2d.h后,就不需要再一个个导入要用到的cocos2d类了。
其次,HelloWorldScene.h中定义了一个CCLayer子类。CCLayer即所谓“层”的概念。层是一个容器的概念,cocos2d在层上放置多个动画元素,如文字、标签、图片、菜单,此外层接收触摸和加速器事件。
第三,定义了一个静态方法,返回了一个——Scene,这个Scene实际上包含了一个层——HelloWorld,这是一个不错的实例化方法。Coco2d中Scene的概念,类似于电影中“场景”的概念--由于受舞台空间或屏幕空间的限制,一个情节往往只能在固定的空间环境中展现,而电影往往是由许多个情节构成
, 随着剧情的发展,场景也需要改变,新的场景需要产生。所以电影就会在一幕幕场景中进行切换 ,这种切换被称为“转场”。
切换到HelloWorldScene.m :
#import
"HelloWorldScene.h"
// HelloWorld
implementation
@implementation
HelloWorld
上面导入了HelloWorldScene.h并实现了
HelloWorld类。O-C中,文件名不见得需要和类名一致。
+(
id
) scene
{
……
}
这个方法就不介绍了,和前面说过的一样。
-(
id
) init
{
if
( (
self
=[
super
init
] )) {
CCLabelTTF
*label = [
CCLabelTTF
labelWithString
:
@"Hello
World"
fontName
:
@"Marker
Felt"
fontSize
:
64
];
CGSize
size = [[
CCDirector
sharedDirector
]
winSize
];
label.
position
=
ccp
(
size.
width
/
2
, size.
height
/
2
);
[
self
addChild
: label];
}
return
self
;
}
init方法中,创建了一个标签 CCLabelTTF (以前是CCLabel)并让他居中。ccp函数是
CGPointMake函数的缩写。
接下来,看一下应用程序委托,如果你有过Cocoa编程的经验,那么会发现这就是一个UIApplicationDelegate,它的主要方法是
applicationDidFinishLaunching:(
UIApplication
*)application
:。
,并将EAGLView绑定到
首先取得Director——导演。导演是cocos2d程序的统筹者和协调者,负责整个应用程序的主窗口的创建,以及每个场景在时间线上的先后顺序。
CCDirector
*director = [
CCDirector
sharedDirector
];
然后创建EAGLView实例。
EAGLView 派生亍类 UIView, 苹果公司用它来实现 OpenGL 输出支持,以支持OpenGL
ES 编程:
EAGLView *glView = [EAGLView viewWithFrame:[
window
bounds
]
pixelFormat:kEAGLColorFormatRGB565
depthFormat:
0
];
并将EAGLView绑定到导演的openGLView属性:
[director
setOpenGLView
:glView];
设置横屏:
setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
设置帧间隔(尚未实现):
[director
setAnimationInterval
:
1.0
/
60
];
设置帧率显示,即屏幕左下角不断变化的数字:
[director
setDisplayFPS
:
YES
];
设置渲染格式位32位RGB:
[
CCTexture2D
setDefaultAlphaPixelFormat
:
kCCTexture2DPixelFormat_RGBA8888
];
移除闪屏,即一开始的那个coco2d Logo标志的屏幕:
[
self
removeStartupFlicker
];
显示HelloWorld文字标签的场景:
[[
CCDirector
sharedDirector
]
runWithScene
: [
HelloWorld
scene
]];
}
分享到:
相关推荐
Cocos2d开发系列
Cocos2d-x高级开发教程:制作自己的《捕鱼达人》 图书简介: 《Cocos2d-x高级开发教程:制作自己的《捕鱼达人》》是国内第一本全面深入讲解Cocos2d-x进阶内容的图书,Cocos2d-x创始人王哲作序推荐,《捕鱼达人》开发...
cocos2d-x游戏开发系列教程-坦克大战游戏关卡选择场景的编写下
《实战系列:Cocos2D权威指南》是目前Cocos2D领域内容最全面、系统和深入的一本著作,也是技术版本最新的一本著作。由国内iOS和Cocos2D领域的先驱和资源专家撰写,不仅系统讲解了Cocos2D的使用方法、技术要点、工作...
一款基于HTML5的Web开发和HTML5移动开发的著名框架,其库和内容相当的丰富。是由object-C移植而来的JavaScript版本。 主要功能: ...http://article.ityran.com/archives/tag/cocos2d-html5系列教程
cocos2d-x游戏开发系列教程-坦克大战游戏加载地图的编写上
原价值1280元的项目实战_游戏编程超级玛丽(基于Cocos2d-x技术实现)课程,本系列课程分为四个实战项目: 1、<打飞机>:在还原微信《打飞机》的基础上,增加了道具,选择飞机,敌人射击等等更丰富的玩法。 2、<宝石...
cocos2d-x游戏开发系列教程-坦克大战游戏之虚拟手柄的编写
cocos2d-x游戏开发系列教程-坦克大战游戏之子弹和地图碰撞
cocos2d-x游戏开发系列教程-坦克大战游戏之子弹的碰撞检测处理
cocos2d-x游戏开发系列教程-坦克大战游戏关卡选择场景的编写中
cocos2d-x游戏开发系列教程-坦克大战游戏之敌方坦克AI的编写
cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测
cocos2d&radius文档是一份全面概述有关cocos系列开发引擎的官方文档。里面集中概述了有关cocos的一切开发知识,对初学者来讲有很大的帮助作用。
最新cocos2d-x3.6版连连看源码,xcode开发环境,附带详细注释,浅显易懂,算法讲解详细。 我的博客有一个系列的详细教程,欢迎阅读。 资源不包含引擎源码,需要在3.6引擎源码目录下建一个目录,比如 MyGame,然后将...
最近刚开始学cocos2d,首先看的就是知易系列的cocos2d教程,虽然内容很好,但却是典型教科书式的写法,更象是说明书或者帮助文档,而不是结合实际的案例一步步来指导说明。 非常有参考价值,不过不是偶喜欢的类型。 ...
cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示
《赵云要格斗》系列博文对应的代码与资源,不懂处看博文:http://blog.csdn.net/evankaka/article/details/42936117
cocos2d-x游戏开发系列教程-坦克大战游戏关卡选择场景的编写上