首页 > 范文大全 > 正文

IOS环境下塔防游戏实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇IOS环境下塔防游戏实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要: 以软件工程思想为指导,分析了游戏策划方案,以iPhone平台塔防游戏项目为依托,采用MVC设计模式,完成了该款游戏的设计和实现,主要工作包括完成了游戏程序结构设计和资源文件结构设计,以及核心类和场景类;在进行相关技术分析的基础上,参与完成了物理引擎、动画系统和声音系统,完成了游戏的框架设计、结构设计和GUI设计;通过类设计和程序实现,完成了具体设计,对开发过程中的难点问题进行了分析,并提出了解决方案。

Abstract: As for the iPhone TD Game, under the guidance of software engineering principle, the thesis analyzed the game plan scheme, use the MVC design mode, and complete the design and implementation of the game. The main work of this thesis is as following: Base on the relevant technical analysis, participated in and completed the game's framework design, structural design and GUI design, as well as the physics engine, animation system and sound system. Complete the game program structure and resources file structure design, core classes and scene classes. According to the class design and program implementation, complete the specific design, meanwhile, the key problems in the development process were analyzed and the solutions were processed.

关键词: iPhone;ios;塔防

Key words: iPhone;IOS;TD

中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2012)36-0194-04

1 研究背景简介

1.1 研究背景 iPhone平台以一种高傲的姿态“横空出世”,随着在新兴的几大智能手机平台中,在很短的时间内便得到用户的认可。它的盈利模式都是在苹果公司封闭的框架内完成的,作为一个完全封闭的平台,iPhone平台从硬件到软件。iPhone产品无论是硬件和软件都实现了标准化,这种封闭模式最大的好处对开发者是至关重要的。经典的“植物大战僵尸”这款游戏缔造了“上线九天狂赚百万美金”的记录,苹果公司的App Store创建了一种全新的盈利模式,实现开发者自身的利益和价值,为iPhone开发更多更好的游戏和应用,极大刺激了越来越多优秀开发者加入到iPhone平台中来。

本文详细阐述了基于iPhone平台开发的一款塔防游戏,尽管有众多开发者在为iPhone开发各式各样的应用程序,同时App Store已经有成千上万的软件和游戏供使用者下载,然而分析和总结应用程序和游戏开发技术方面的论文却很少,基于iPhone平台开发的游戏主要包括内存管理控制、程序详细设计、游戏框架设计、游戏引擎、游戏策划等。本文在完成iPhone平台游戏设计和开发的基础上,使开发者能够更方便、更快捷地进行iPhone游戏开发,对工作成果进行总结,为iPhone平台的开发者提供了借鉴和参考。

1.2 iPhone开发环境 它的开发需要具备一些基本条件,iPhone是一个封闭的系统,首先最后需要注册iPhone开发者帐号;其次需要移动设备,可以是iPhone、iPad、iTouch;再者需要下载SDK,并安装;最后需要基于Mac的操作系统,这些电脑均为苹果公司的产品,它可以是iMac、MacBook、MacBook Pro、MacBook Air或者Mac Mini。

iPhone SDKi由以下几个功能模块组成:

①iPhone平台参考库。如果文档库有更新,则更新会被自动下载到本地。SDk默认包含iPhone平台开发的参考文档。通过选择Help -> Developer Documentation就可以看到参考库。

②iPhone模拟器。为便于在没有移动设备的情况下进行iPhone应用程序的开发,对开发的应用程序在Mac OS系统下进行模拟,它是Mac OS X平台应用程序。

③XCode工具。XCode、Interface Builder和Instruments是该工具包括的3个关键应用程序,它是iPhone平台最重要的开发工具。

XCode继承了许多其他工具,它是开发过程中用到的主要应用程序。可以通过它来编辑、编译、运行以及调试代码。

XCode是一个继承开发环境,它负责管理应用程序工程。

通过Interface Builder创建出来的接口对象,Interface Builder是以可视化方式组装用户接口的工具,将会保存到某种格式资源文件,并且在运行时加载到应用程序。

可以通过Instruments收集应用城西运行时的行为信息,Instruments是运行时性能分析和调试工具,并利用这些信息来确认可能存在的问题。

2 塔防游戏分析

2.1 游戏背景 在魔域大陆有一个城堡,受到怪物的不断侵犯,现在城堡中的国王希望能找到一个足智多谋的军事来为城堡部署防御措施,消灭怪物,保护城堡里的平民百姓,作为奖励,国王将自己美丽的公主许配给这位睿智的英雄。

通过这样一个故事背景,增加游戏的可玩性,你将成为这位英雄,来守护你的百姓,迎娶你的公主吧。引起玩家的游戏兴趣。

2.2 游戏主线 玩家在游戏中扮演一个军事,部署防御塔来抵御怪物的进攻,保护城堡。该游戏为一款单击的塔防类游戏,以闯关为主。游戏以10小关为一大关,每一关的地图不一样,越往后,怪物等级越高,关卡的整体难度越高。游戏开始只有第一关是解锁状态,只有在前一关完成之后,下一关才会自动解锁。

玩家通过闯关和杀怪可以获得金钱,金钱用来建造防御塔或者升级防御塔。通过升级防御塔或者建造更多的防御塔来挑战更高难度的关卡。顺利防守10大关则游戏胜利,获得最后的奖励,迎娶公主。

2.3 功能分析 本游戏在游戏过程中涉及到的主要用例如下,在功能技术实现方面,软件工程主要开始于一系列建模。

进入游戏:为便于加载相关素材,玩家刚开始进入游戏时有一段视频的播放。

建造和升级防御塔:在游戏过程中需要建造不同的防御塔以及对防御塔的升级。

购买道具:在游戏过程中,玩家可以购买道具,帮助完成任务。

自动瞄准和射击:防御塔计算怪物的位置,自动瞄准怪物,以自身防御塔特性的攻击速度和力量来攻击怪物。

结束游戏:玩家也可以自己结束游戏。图1为游戏过程中的主要用例,玩家闯关成功或者失败时,程序根据条件判断终止游戏。

游戏主要功能流程如下:

游戏开始首先播放LOGO视频,同时加载主菜单素材。

LOGO视频播放完毕,进入主菜单导航界面。

进入游戏。

进入关卡选择。

进入游戏主场景。

玩家在游戏过程中的相关操作。例如选择建造防御塔、升级防御塔、出售防御塔等。

保存游戏。

结束游戏。

图2 为游戏的主要功能流程图:

3 游戏设计

该游戏框架的设计是基于Cocos2D这一游戏开发框架,包括动画系统、GUI系统、物理引擎、声音系统四个部分。Cocos2D是一个iPhone游戏开发的一个开源主流框架,Cocos2D很好的封装了GUI系统和动画系统,提供了相对完善的功能,因此受到了开发者的一致好评。可以实现场景切换及动画效果,非常容易的创建精灵,从而快速的开发出游戏雏形,缩短游戏开发周期。

3.1 游戏结构设计 本游戏是一款塔防游戏,关卡有100关,对应的素材也就比较多,因此,在处理游戏逻辑、控制素材占用内存以及内存合理释放就比较关键。在最底层设计了一个类似数据库的XML文件资源体系,将游戏中关卡、怪物、武器等所有出现在游戏中的物体,都写进单独的配置文件。因为该游戏是单机游戏,每个XML文件都比较小(不大于20K),所以在读取XML文件时几乎感觉不到延迟;同时,提高了游戏的可配置性。读取后的配置文件被封装成单独的对象,游戏主场景根据关卡配置通知相应的对象创建自己本身的刚体对象,并添加到主场景中。游戏中用到的素材,都被添加到自定义的一个缓存池中,通过该缓存池,根据游戏逻辑,精确处理每个素材的释放时机。游戏的主场景中注册了一个视角控制器,用于切换游戏视角,框架的最上层是一个游戏控制器负责处理游戏主场景的逻辑。

另外,处理游戏声音被单独封装到一个工厂类中,用来统一管理游戏音效的播放。

3.2 GUI系统设计 用户界面系统设计的好坏直接影响游戏的性能,用户界面是游戏表现层最主要的组成部分, Cocos2D中有以下几个基本概念:

3.2.1 精灵和显示组件:精灵和显示组件是显示的最基本元素。显示组件为包括Button、Label等在内的基本显示元素。其中精灵是游戏中具备一定表达能力的实体,如在游戏中,玩家控制的防御塔和系统出现的怪物都是精灵,它可以根据开发者设定逻辑,当触发某个状态时做出反应,他们可以进行行走,瞄准发射等一些动作。

3.2.2 Layer:用于直接描绘可视元素,可以直接显示出来。游戏中的显示组件和精灵创建成功后添加到层,它可以定义出一个可视化区域来。游戏中所有的Touch事件也是在层中接收进行处理的。一个场景可以包括若干层,层是可以叠加到一起的。事件的传递可以选择在具体的层中处理相应的逻辑,是从最上层向下依次传递,通过控制每个层中事件的优先级。

3.2.3 Scene:为游戏提供一个显示空间,继承Node,相当于屏幕。

3.2.4 Node:显示基类,提供描绘显示等最基本的功能。

Cocos2D中另一个重要概念是导演(Director),它用一个列表来管理所有的场景,它负责场景之间的跳转,因为游戏中当前只能显示一个场景,Director是一个单例对象,全局唯一。Director就是通过控制当前应该显示哪个场景,应该显示哪个场景时,那个场景就被从列表中取出来,实现场景之间的转换。

场景的跳转分为两种:一种是Replace Scene,即一个场景完全替换掉另一个场景,此时前一个场景的内存会被全部释放掉;另一种是Push Scene,此时前一个场景仍然占用内存空间,典型的用法就是游戏暂停,暂停时将游戏场景添加到场景列表中,返回游戏还原到上一个场景。

Cocos2D设计的GUI系统有一个缺陷,为最大限度的节省程序员的开发时间,Cocos2D封装最基本显示组件过程中使用了大量的Objective-C的自动释放机制。如创建Sprite、Label等基本显示组件。而Objective-C的自动释放机制实际是一种方便处理内存的机制,其最大问题是会延缓内存的释放,通常在小型素材较少的游戏开发中不会觉察其带来的问题,但如果游戏中有很多大图片素材需同时加载,使用Cocos2D创建Sprite时问题就会显现出来。

3.3 Tile Map使用 Tile Map是一款简单的地图编辑软件,Cocos2D能加载TMX文件中的资源,使得精灵可以在地图上行动。Tile Map示意图如图3所示。

3.4 地图资源加载 遍历TMX文件中所有的对象,然后把相应的数据拿出来!每一个对象都被命名为“WayPoint#”,因为这个顺序,所以加载进行非常方便。然后,我们创建一个WayPoint类,并且设置它的位置,然后把它加到DataModel的_waypoints数组中去,方便后来查找。

当addTarget被调用的时候,我们首先获得当前的波数,然后判断是否结束。然后,我们随机产生一个“Fast Creep”或者是一个“Strong Creep”,然后基于第一个waypoint来设置它的位置。(你应该记得,如果curWayPoint是0的话,那么就会得到tmx文件中的Waypoint0所代表的位置)。最后,我们把对象tag设置为1,然后把它添加到DataModel里去。

目前”gameLogic“决定什么时候添加一个新的target,考虑的因素就是”spawnRate“,也就是怪物出现的频率。

3.5 滚动屏幕 将地图控制在一个屏幕之内,所能呈现的内容较少,所以我们选择滚动屏幕从而在一个Scene场景内可以有更多的内容。UIPanGestureRecognizer类实现了这个功能。

3.6 防御塔自动选择和瞄准目标

对怪物和防御塔,有以下3个设定。

①Towers 应该可以瞄准离它最近的creep。

②Towers 应该面朝着向它靠近的creep。

③Creeps改变方向的时候,也应该旋转身体。

要计算出tower和creep改变面朝方向时需要旋转的角度。首先计算当前的位置和参考点的位置(对于tower就是creep对象,对于creep就是waypoint对象)的向量,然后使用cocos2d的一个函数ccpToAngle得到弧度值。然后使用CC_RADIANS_TO_DEGREES这个宏转换成角度。

4 游戏实现

游戏效果演示如图4和图5所示。

5 结束语

鉴于目前iPhone游戏开发多、总结性技术论文少现状,本文详细阐述了iPhone平台游戏开发环境的搭建,总结相关论文工作成果,为了能够给相关的开发者提供借鉴和参考,对游戏设计与实现、关键技术分析等进行了详细论述。

本文详细描述了iPhone游戏开发的整个流程,主要工作包括游戏分析、游戏设计、游戏实现三个部分。并给出Cocos2D框架开发塔防类游戏的实现过程,有效地加快了游戏的开发进度。在详细设计过程中,给出了核心类的源代码,帮助理解游戏实现的过程。

像塔防之类的游戏,人机交互性好,可玩性强。这类游戏在App Store上就不会过时,增加对情节以及声音效果等方面的考虑和设计,如植物大战僵尸一样,游戏本身就具有很好的可玩性。如果最终能实现多人在线时时对战游戏,随着技术的更新和网络环境的提高,相信一定会受到玩家的认可。

参考文献:

[1]Dave Mark,Jeff LaMarche(漆振,解巧云,孙文磊等译). Beginning iPhone Development Exploring the iPhone SDK.北京:人民邮电出版社,2009.

[2]Erica Sadun(漆振,解巧云,郎亚妹等译).iPhone开发秘籍(第一版).北京:人民邮电出版社,2009.

[3]XMobileApp.iPhone创意开发入门与实战.北京:人民邮电出版社,2010.

[4]D ave Mark,PJ Cabrera(王小振,王恒等译).iPhone Games Projects.北京:人民邮电出版社,2010.

[5]Steffen Itterheim. Learn iPhone and iPad cocos2d Game Development.