首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于Cocos2d的iPhone游戏的开发方法概述

作者:翁永翔 李阳德 郑顺航 来源:电子技术与软件工程


  摘要本文以一款iPhone游戏为例介绍了利用Cocos2d开发2D游戏的基本方法。着重说明了Cocos2d的场景管理、菜单设计、动画机理等。
  【关键词】Cocos2d 精灵 游戏
  随着智能手机的普及,琳琅满目的iPhone游戏越来越受欢迎,诸如:愤怒的小鸟、水果忍者等游戏更是风靡全球。这些风格迥异的游戏都是在麦金塔系统上通过Cocos2d插件在Xcode集成开发环境创作的。Cocos2d是一个基于MIT协议的开源框架,用于游戏开发、APP程序和人机交互应用。本文以一个游戏实例介绍如何通过Cocos2d来开发自己的iPhone游戏。
  1 Cocos2d的主要功能
  Cocos2d为开发者提供了许多强大的APP创作功能:场景管理、精灵管理、游戏特效(波浪、液体等)和动画支持、内置声音引擎以及人机交互界面。这些资源也够成了iPhone平面游戏的骨架。对于一个2D游戏来说,故事的发展常常以不同场景(scenes)之间的切换来描述。在Cocos2d中,开发者通过Flow control可以比较方便地控制scenes之间的过渡。游戏的本质是一种第一人称戏剧,玩家以虚拟形象参与电子戏剧的演出。在Cocos2d中,开发者通过Sprites快速地塑造玩儿家的剧中角色形象。角色的动作行为通过Actions实现,如:move、rotate、scale等。此外,在人机交互界面方面,Cocos2d提供了标准的Menus和Text Rendering。这些功能可以帮助开发者迅速掌握App创作技能。
  2 一个游戏开发的实例
  游戏制作工程本质上是一种特殊的软件工程。其特点在于游戏的产品并不是科学计算或者财务管理等常见的应用数学或者数据库软件,而是一部电子戏剧。因此人文艺术的钻研是游戏深度的保证。因此,游戏软件工程并没有统一的标准模版。它大概分为策划、美工、程序逻辑、测试发布几个组成机构。
  2.1 游戏策划与需求分析
  在标准的软件工程中,我们首先考虑的是产品的功能需求。相应的,在游戏开发中,需求分析是游戏策划者的工作。在本文中,我们策划一款益智类的iPhone游戏。玩家意在触摸屏上点击出现夜空中闪烁星星的效果。目前在App市场上,类似主题的作品有Jonathan Powell Productions的Star Tapper和iCandi Apps公司的Night Sky2。
  2.2 游戏的组成要素
  (1)场景:一张蔚蓝色的画布,尺寸大概完整覆盖分辨率大概在960*64的手机屏幕。它将作为天空背景使用,也就是游戏的场景。
  (2)精灵;闪烁的星星,它是游戏的角色。玩儿家通过星星的绘制享受乐趣。
  (3)菜单、按钮:这些游戏的附属是无法回避的人机交互界面,越简单越好。
  (4)特效:当玩儿家达到规则的要求时,画面产生特效,以表达对玩家技艺的赞赏。
  将程序开发任务划分成如下几个要点:创建场景:场景切换。在场景的管理中,游戏安装流程执行,每个独立的流程显示在不同的界面,这些功能在Cocos2d中称为场景。
  3 精灵管理
  对于精灵管理程序来说,重要是精灵特效的表达。比如精灵的动作(Actions):可组合的动作如移动(move)、旋转(rotate)和缩放(scale)等更多精灵移动
  //创建个临时精灵,获取leverHelper中的精灵图片
  LHSprite*pGirlRightEye_1=[lhspriteWithUniqueName:@"img_girl_face_eye_R_01"];
   //移动的方向是,x轴移动10,y轴移动6个单位,移动的时间是1秒
   id pGirlREyeMoveBy=[CCMoveBy actionWithDuration:1 position:ccp(10,6)];
  //给pGirlRightEye_1 实施动作
  [pGirlRightEye_1 runAtion:[CCRepeatForever actionWithAction:[CCSequnce action: pGirlREyeMoveBy, pGirlRightEye_1_1,nil]]];
  图像菜单的创建也是通过精灵来实现的。例如:
  //1.创建精灵
  CCSprite *before =[CCSprite spriteWithFile:@"Icon.png"];
  //2.添加菜单项
  CCMenuItemSprite* item2 =[CCMenuItemSprite itemFromNormalSprite: before selectedSprite:select target:self selector:@selector(restart)];
  4 总结
  本文论述了如何用Cocos2d进行创建游戏项目。Cocos2d的类分装了很多繁冗复杂的底层内容,而且这些类使用十分的简单,因此使我们不需要处理复杂OpenGL ES。最后,本文介绍了Apple游戏程序的发布规则。
  
  参考文献
  [1]金福生,于李朴之.IOS应用程序开发方法与实践[M].人民邮电出版社,2012.
  [2]Steffen Itterheim.iPhone & iPad cocos2d游戏开发实战[M].清华大学出版社,2011.
  [3]郑顺航.一个3D游戏的球天的设计与实现[D].福建工程学院,2013.
  
  作者单位
  福建工程学院福建省福州市350108