Cocos2d学习笔记基本对象是本文要介绍的内容,文章记录了Cocos2d点点滴滴,感谢知易的cocos2d教程,在拜读他的教程时将一些要点记录下来,以便随时查阅。来看详细内容。
1.场景 (CCScene):构成整个游戏的流程的画面就是我们所说的场景
不同的场景都提供不同的操作,大致可以分为以下几类场景:
展示类场景:播放视频或简单的在图像上输出文字,来实现游戏的开场介绍、 胜利、失败提示、帮助简介。
选项类场景:主菜单、设置游戏参数等。
游戏场景:这是游戏的主要内容,除了这个场景之外的其他类场景基本上都是通用架构实现的。
每个场景都是通过不同的层(Layer)的叠加和组合协作来实现不同的功能的。因此,通常每个场景都是有一个或者几个层组成的。
2.层(CCLayer)
层是我们写游戏的重点,大约 99%以上的时间是在层上实现游戏的内容。
层的叠加是有顺序的,比如:编号为 1 的图像背景局在最下面,2 号中间,3 号最 上面。处于最上面的层不透明的内容将覆盖下面层的内容。
这个次序同样用于编程模型中的事件响应机制。即编号 3 的层***接收到系统事件(手指单击屏幕事件),然后是编号 2,***编号 1。在事件的传递过程中,如果有一个层处理 了该事件,则排在后面的层将不再接收到该事件。
我们可以简单的把层理解为在微软 Windows 编程中的窗口(hWnd 或者 WinForm,还有 Delphi 中的 TForm)。
每一层又可以包含很多各式各样的内容要素:文本(Label)、链接(HTMLLabel)、精灵(Sprite)、地图等等。其中,精灵是重点。
Layer 的主要功能在于:
1)接收 iPhone 上的屏幕触摸(touch)操作输入。
2) 接收动力感知(Accelerometer)输入。
除此之外,layer 对象本身并没有提供更多的功能。
Cocos2D为了便于大家使用,直接提供了以下 3 个局:
ColorLayer 颜色层:这是一个透明的、可以按照 RGB 设置填充颜色的层。可以通过 setContentSize 设置层大小,改变颜色块的尺寸。层也支持动作,可以闪烁,渐变。
Menu 菜单层:这是一个以 Menu 对象为集合类,MenuItem 类实例组成各式各样按钮的菜单管理选择画面层。(注意:该层中的实例必须是 MenuItem 类或者子类的实例)。Menu 类提供的方法主要都是用来按照横向、竖向或者多行列排序展示 MenuItem 类实例的。
为了实现不同的按钮效果,系统提供多种类型 MenuItem。每个按钮都有三个基本状态:正常、选种、禁止。
3.精灵(CCSprite)
精灵是整个游戏开发处理的主要对象。
从技术上讲,精灵就是一个可以不断变化的图片。返些变化包括:
位置移动
旋转(以自身几何中心或以某个屏幕坐标为轴)
放大缩小
运动(按一定时间间隔连续显示一系列图像,形成运动效果)
所谓游戏,就是玩家操作一个或多个人工控制的精灵与一个或者若干个系统控制的敌方精灵进行互动:紧身肉搏、远程射击、贴近对话等等。
4.导演 (CCDirector)
按照面向对象的设计原则和反向依赖原则:精灵不应该依赖层、层不应该依赖场景、场景不应该依赖整个流程。导演对象就是整个流程的代表,他负责游戏全过程的场景切换。
导演通常只有一个,因此返个对象是单例(singleton)。Cocos2D框架已经预定义了该实例,不需创建,我们直接使用就可以。
导演对象接受层对象/场景的要求,按照预先设计好的流程来终止、压栈、激活当前场景,引导下一个场景。
需要特别说明的是:任何时间,只有一个 Scene 对象实例处于运行激活状态。该对象可以作为当前游戏内容的对象的整体包容对象,对于 Menu(菜单对象,继承 Layer 对象), 通常属亍当前场景的主局。以上就是一个游戏的主要整体对象架构。
CCDirector对象的作用类似于我们在微软 Windows 编程中的主窗口对象(不同之处在于该对象并不可见),它负责创建、管理应用程序/游戏的主窗口,在特定的条件下显示执行某个场景(Windows 编程中的某个视图-View)
5.schedule
在游戏设计时,我们需要丌断的改变屏幕显示来反映游戏操作的效果,最简单的就 是提示用户已经运行的游戏时间。为此,我们需要使用 Cocos2D 的内置 任务调度机制,即 CocosNode 的方法:schedule。
schedule 的作用类似计时器,按照指定的时间间隔不断调用某个指定的回调凼数。
小结:Cocos2d学习笔记基本对象的内容介绍完了,希望本文对你有所帮助!