张运涛

c++

   :: 首页 :: 联系 :: 聚合  :: 管理

常用链接

留言簿(4)

搜索

  •  

最新评论

游戏引擎:
一。场景CCScene

1.展示类场景  2. 选项类场景  3.游戏场景
每个场景都是通过不同的层(layer)的叠加和组和来实现 不同的功能的。因此,通常生个场景都是有一个或者几个层组成的。
二。层CCLayer
层是我们写游戏的重点,我们大约99%以上的时间是在层上实现我们的游戏内容。
eg:一个游戏主菜单画面是由3个层叠加实现的:Background layer Animation layer Menu layer
为了让不同的层可以组合产生统一的效果,这些层基本上都是透明或者半透明的,层的叠加有顺序的,如同事件响应机制。
Cocoa2d从技术实现角度提供一些公用层:处理菜单的菜单层(Menu),处理颜色的颜色层(ColorLayer)等.
每一层又可以包含很多各式各样的内容要素:文本(Label) 链接(HTMLLabel) 精灵(Sprite) 地图等。
三。精灵 CCSprite
精灵是整个游戏开发处理的主要对象,地方的飞机。坦克是系统AI控制的精灵,代表玩家控制的我方飞机也是精灵。甚至随机飞过的一片云,一只鸟都是精灵。
特点:位置移动 旋转 放大缩小 运动
四.导演 CCDirector
精灵不应该依赖层,层不应该依赖场景,场景不应该依赖流程。
导演代表流程,负责游戏全过程的场景切换,接受层对象/场景的要求,按照预先设计好的流程来终止,压桡,激活当前场景,引导下一个场景。但导演通常只有一个,这个是间例(singleton).Coco2D框架已经预定义了该实例,不需创建,直接使用即可。
任何时间,只有一个Scene对象实例处于运行激活状态,该对象可以作为当前游戏内容的对象的整体包容对象,对于Menu(菜单对象,继承Layer对象),通常属于当前场景的主层。

Cocos2D-iPhone的实现类
CCDirector
负责创建,管理应用程序、游戏的主窗口,在特定的条件下显示执行某个场景。
设置主程序窗口显示属性。
管理,显示场景。
    Director 对象管理场景的方法主要有以下几个:   
  1.  主程序启劢,显示第一个场景的方法:(void) runWithScene:(Scene*) scene ;   
  2. 挂起当前当前正在运行的场景并压栈到代执行场景队列。将传入场景设置为当前执         行场景:(void) pushScene:(Scene*) scene;  
  3.  执行代执行场景队列中的最后一个场景,当前场景被释放:(void) popScene;         当代执行队列中没有代执行场景时,系统自劢退出,调用end 方法。    
  4.  直接用一个场景取代当前执行场景,释放当前场景:(void) replaceScene:         (Scene*) scene;返个凼数是经常使用的。    
  5.  结束场景运行:(void) end;  
  6.  暂停场景运行:(void) pause;画面迓存在,时间任务停止。    
  7.  恢复场景运行:-(void) resume;
CCScene
当前版本基本上没有附加任何特殊功能,基本上可以看成是层Layer对象的一个容器。
CCLayer
功能:接收iPone上的屏幕触摸touch操作输入
          接收动力感知输入
直接提供了以下三个层:
 ColorLayer颜色层(可以通过setContentSize设置层大小,改变颜色块的尺寸)
 Menu菜单层(实例必须是MenueItem类或者子类的实例)
 MultiplexLayer复合层 可以包含多个层的复合层。
CCSprite
一个独立的图像块,通常情况它是运动的(Action):移动 旋转 放大缩小 等效果。
我们可以设置Sprite的属性让它运动,也可以通过动作Action来达到同样的目的。(95%内容是精灵实现模拟)
1.缓存图像内容,减少相同内容文件的读取次数
2.批量提交绘画,减少OpenGL函数的调用次数。
迓有一个叫CCSpriteFrameCache 类。该类用亍管理劢画效果的全部帧图像,该类直 接提供针对一个简单的图像处理工具 http://zwoptex.zwopple.com/输出文件支持。
 

 


 

posted on 2010-07-30 21:20 张运涛 阅读(2359) 评论(0)  编辑 收藏 引用 所属分类: cocoa2d

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理