手把手教你开发一款IOS飞行射击游戏(一)

本教程介绍如何使用Cocos2d在iOS平台上开发一款飞行射击游戏,涵盖从项目搭建到具体游戏元素实现的过程,适合Cocos2d新手入门。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天带来的是一个IOS上的飞行射击游戏,通过整个开发过程,帮助和我一样的新手初步了解Cocos2d游戏开发的一些基础知识以及开发流程,熟悉开发过程中使用到的各种工具。由于刚刚接触IOS开发不到3个月时间,有不对的地方或者代码有不完善的,或者有哪些地方写的不明确的,欢迎留言批评指正^0^。

废话不多说,首先上几张截图,看一下游戏最终的大致运行效果:

游戏开始界面(难度选择):

2014年05月12日 - Daniel - KHome

游戏界面:

2014年05月12日 - Daniel - KHome

游戏结束:

2014年05月12日 - Daniel - KHome

开发使用的工具是Xcode 5.1,在IPad316G进行测试。Cocos2d版本为2.0。完成这个教程需要了解Object-C语言的基本语法,熟悉Xcode的使用。

在规划游戏的时候,我们把游戏分成若干个场景,在Cocos2d中,一个场景是一个CCScene对象,场景中包含了一个或多个层(CCLayer),每个层上放置各种各样的元素。任何一个时刻,只有一个场景呈现给用户。

上面看到的三个截图代表了游戏的三个场景,StartScene,GameScene和GameOverScene,我们省略掉了一个LoadingScene的截图,这个LoadingScene用来过渡StartScene和GameScene的转换过程,防止在切换到GameScene时,由于加载资源较多导致切换场景时间过长,程序界面卡主。

先跳过StartScene和GameOverScene,我们首先来制作GameScene:

在界面上我们看到GameScene的一些组成元素:背景(背景是动态背景,截图没有体现),玩家飞船,敌人飞船,子弹,摇杆和按钮,当前分数和最高分,看不到的一些元素有音效(背景音效和射击音效),爆炸的粒子特效。

下面我们开始制作,首先创建一个Cocos2d的工程:

2014年05月12日 - Daniel - KHome

起名DarkTravel(名字随便起,喜欢叫什么都行),设备类型(DeviceFamily)选择IPad。

创建完工程后,删除工程中默认创建出来的HelloWorldLayer.h,HelloWorldLayer.m,IntroLayer.h,IntroLayer.m这四个文件,我们即将创建我们自己的Layer和Scene:

2014年05月12日 - Daniel - KHome

删除后,按Cmd+N键创建一个类:

2014年05月12日 - Daniel - KHome

取名叫GameLayer,继承CCLayer(你可能要问,之前不是说好的Scene么,怎么变成Layer了?!稍后我会有解释):

2014年05月12日 - Daniel - KHome

创建好之后,我们修改AppDelegate.m文件中的代码,代码中原来引用IntroLayer.h,我们将其替换为我们的GameLayer.h:

2014年05月12日 - Daniel - KHome

并且在下面的方法中,将IntroLayer替换为GameLayer:

2014年05月12日 - Daniel - KHome

至此,游戏在运行的时候,默认显示的就是我们自己的GameScene了。

然而我们此时仍然无法编译通过,编译器提示我们GameLayer没有实现静态方法“scene”。在GameLayer.h中加入静态方法声明:

+ (id)scene;

然后在GameScene.m中添加相应的实现方法:

+ (id)scene {

    CCScene* scene = [CCScenenode];

    GameLayer* gameLayer =[[GameLayer alloc] autorelease];

    [scene addChild:gameLayer];

   

    return scene;

}

编译通过。

这里做一下解释,之所以我们创建继承自CCLayer的GameLayer,再创建一个类方法返回一个包含GameLayer的CCScene对象,是因为大多数情况下CCScene对象里面不包含任何游戏元素对象,并且很少需要继承扩展,因此常见的方式是创建CCLayer子类对象,添加类方法创建并返回包含这个Layer的CCScene对象。

在AppDelegate中修改的那段代码,就是让director运行我们的GameScene。

好了,下一篇我们就开始一个一个地制作我们前面提到的GameScene中的各个元素了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值