理解 Cocos2D 如何绘制帧

本文介绍了Cocos2D在Android游戏中如何处理帧绘制和对象状态更新。绘制帧的关键在于`drawScene`和`visit`方法,其中`visit`实现了节点的层次绘制。状态更新通过`scheduler_update`进行,使用用户定义的函数按游戏逻辑更新对象状态,并结合Box2D引擎进行物理模拟。
摘要由CSDN通过智能技术生成

绘制帧是游戏的关键环节, 要做事情有两件

1) 处理游戏对象的状态变化 ( 位置移动, 碰撞等等 )

2) 重新绘制这些对象


绘制对象

本文谈一下我对 Cocos2D 绘制帧实现的理解, 见下图 (  注意, 这不是严格的UML, 只是为了便于理解绘制的 )

drawScene 就是要求 Cocos2D 去绘制一帧, Schudler_update() 就是处理  1) 游戏对象的状态变化 这个我们后面会讨论, 先说

2) 重新绘制这些对象

visit 正是实现上屏的方法




visit的要点有2

a)  visit 是 Node的方法,  Node 是有层次结构的组合模式 ( Composite)

    对于普通Node,  visit直接调用draw 方法 ( 比如 对于 CCSprite 派生类, 会重载 draw ( 而不是重载 visit) , 而其draw的实现就是调用 opengl 函数直接画图

b) 对于 Composite Node

   它的 visit 的实现就是调用它引用到的多个 Nodes (  可以认为这些就是它的孩子  ) 的 visit 方法.


一个 CCScene 就是一个 Composite Node, 而一个 Sprite 就是一个普通 Node, 当调用 CCScene 的 visit方法, 就调用它所有孩子的 visit方法, 并把整个游戏画面给画了出来.


状态更新


对于状态更新, 我们希望有一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值