Cocos2d:为多个精灵使用单个计时器/调度程序

时间:2012-08-04 11:06:39

标签: iphone cocos2d-iphone nstimer box2d-iphone

我想知道是否可以为多个精灵使用单个计时器或调度程序方法?就像我现在正在开发游戏一样,可能有任意数量的精灵,我想对所有这些精灵执行一些操作,那么我是否必须使用尽可能多的计时器或调度程序作为精灵?或者如何仅使用一个计时器或调度程序完成工作? 如果我安排一个方法并使用它,Say 10精灵怎么办?它会影响性能吗?

1 个答案:

答案 0 :(得分:0)

这在大多数游戏中都很常见。通常,您将使用类似于进行不同操作的对象列表。粒子系统就像这样工作,只需一个对象即可更新所有精灵位置。 在我的游戏中,我有很多对象,每个对象都有自己的更新功能,即使它们属于同一类型。

for (GameObject* object in objects)
    [object update:dt];

我想这更像是一个性能问题,一旦遇到问题就应该进行优化,或者如果你知道你将进行繁重的处理。像这样的东西可能在更新功能上,会涉及更少的函数调用,并且可能会更有效率,但我不认为它真的值得,因为首先尝试优化的东西可能是在绘图方而不是逻辑方面(如spritebatch或粒子系统)。

for (CCSprite* sprite in sprite)
{
    sprite.x = someVariable;
}