2011-01-31 40 views
1

我正在开发一款游戏。有些球从屏幕的顶部落下,玩家必须抓住它们,因为它们被抓到彼此堆叠在一起。我有一种方法可以创建每个新球并将其添加到我用来移动精灵的阵列中。问题是,他们碰撞后,我需要他们停止移动,因为数组被调用来移动他们都移动。如果我试图让他们停下来,他们都会停下来。所以我希望创建一个指针属性,如果ther是这样想的,例如“sprite.position”我需要一个新的属性,我可以像布尔值一样检查。我希望创建一个像sprite.hasCollided这样的属性,如果它返回YES,那么球就不应该移动。这是可能的还是有更好的方法来做到这一点?在cocos2d中创建指针属性iPhone

感谢 坦纳

回答

0

CCNodes(和通过继承,CCSprites)有一个userData属性,它是一个void *。您可以使用它将自定义对象关联到cocos2d对象。请记住,如果您使用userData选项,则在大多数情况下,您在创建/分配精灵时需要分配任何内存,并在完成后释放它。

int* myInt = (int*)malloc(sizeof(int)); 
*myInt = 0; 
sprite.userData = myInt; 

//some time later, when you are done with the sprite 
free(sprite.userData); 

由于对用户数据性的提高,你可以做xuanweng暗示什么,并创建包含球各种游戏相关特性的球对象,并在此实例分配给每个使用你的球CCSprites的方法。

1

我建议你创建一个球对象。并添加布尔作为对象的一部分。