Ray's Learn Cocos2d 笔记(一)

最近开始学习cocos2d,看的是Ray Wenderlich的著作,此人有自己的网站,集结了一批人写ios(现在也有其他平台)上的tutorial。

看了前6章,总结一下所学,以备以后温习。

2012-06-20 17:06:00

上图是个人对cocos2d编写游戏所适用到的几个概念。

  • GameScene:游戏场景,比如你的游戏有两个关卡,每个关卡就应该是一个游戏场景。

  • GameLayer:游戏层。游戏场景可以包含若干个层,层的适用可以更容易的控制游戏。比如,游戏背景单独做一个layer,这样和游戏人物layer就不会冲突,也更易于管理。

  • CCSprite:精灵。游戏人物,道具等都可以是精灵。

正如电影一样,游戏也要每隔一段时间刷新界面,通常在Layer中通过Update方法来控制其中的CCSprite对象刷新。Layer往往通过protocol和delegate的方式来控制CCSprite的状态变化。protocol的设计要点是减少Layer和Sprite之间的耦合,这样方便Sprite的增减以及提高Sprite的复用性。而CCSprite的状态修改一般是通过状态机的变化来修正,可以设定在不同状态下做什么样的操作,显示什么样的动画,以及在什么情况下Sprite进入另一状态。

以上就是个人理解的cocos2d开发游戏的框架结构,Scene,Layer和Sprite应该是三大主角。另外,Layer中往往会使用SpriteBatchNode来添加Sprite,这是为了节省内存以及更快的渲染。其中的机理足以写成长篇大论,这里先掠过,以后待好好学习后再写心得。

接下来就是各种Sprite的设计了,不得不说Sprite的设计过程是理解并实践面向对象的绝好体验。就书中的例子而言,很好的抽象出了人物,敌人和物品(道具)模型。道理和市面上的书中所讲差不多,但是还是要多实践才能体会。

 

另外前6章中还涉及到的重要概念有:

  • CCSpriteBatchNode:资源文件的创建以及对应ipad,iphone,iphone retina等资源的文件命名法则。

  • 动画:添加动画的方法,设计好动画并制成plist文件供程序读取调用

  • 碰撞检测: 这里不涉及物理模型如刚体之类,主要还是指检测sprite的位置。这里需要注意要将Sprite附近的空白区域去掉,来获得相对精确的结果。

  • 文本:添加文本来帮助调试,以及创建字体资源文件供程序使用。

 

有不正确的地方,请大家多多批评指正。

posted on 2012-06-20 17:11  scorpiozj  阅读(386)  评论(0编辑  收藏  举报