zoukankan      html  css  js  c++  java
  • 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附近的空白区域去掉,来获得相对精确的结果。

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

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

  • 相关阅读:
    解决 Response GZIP Chunked 引发的异常
    已知Random.Next(1,10),产生1至100不重复的随机数据
    EntLib Validation Application Block 01 通过配置文件,自行指定对象自身方法进行验证
    梅花雪日历限制只可以小于等于当前日期的功能
    缓存Linq的mappingSource,提高Linq To SQL的性能,(20%的性能都不至哟)
    系统数据源连接对话框
    新浪还是明码保存密码?
    MVVM:ViewModel片段
    利用Microsoft.ReportingServices.RdlObjectModel.dll文件对rdl进行动态更改
    《软件架构师应该知道的97件事》
  • 原文地址:https://www.cnblogs.com/scorpiozj/p/2556510.html
Copyright © 2011-2022 走看看