在cocos2d iPhone中创建指针属性

在cocos2d iPhone中创建指针属性,iphone,xcode,cocos2d-iphone,Iphone,Xcode,Cocos2d Iphone,我正在做一个游戏。有一些球从屏幕顶部落下,球员必须接住它们,因为接住的球会堆叠在另一个上面。我有一个方法,可以创建每个新球,并将其添加到用于移动精灵的数组中。问题是,在它们碰撞后,我需要它们停止移动,因为数组被调用来移动它们,所以它们都会移动。如果我试图让他们停下来,他们都会停下来。所以我希望如果有这样的想法,我可以创建一个指针属性,例如“sprite.position”,我需要一个新属性,我可以像布尔值一样检查它。我希望创建一个像sprite.hasCollide这样的属性,如果它返回YES,

我正在做一个游戏。有一些球从屏幕顶部落下,球员必须接住它们,因为接住的球会堆叠在另一个上面。我有一个方法,可以创建每个新球,并将其添加到用于移动精灵的数组中。问题是,在它们碰撞后,我需要它们停止移动,因为数组被调用来移动它们,所以它们都会移动。如果我试图让他们停下来,他们都会停下来。所以我希望如果有这样的想法,我可以创建一个指针属性,例如“sprite.position”,我需要一个新属性,我可以像布尔值一样检查它。我希望创建一个像sprite.hasCollide这样的属性,如果它返回YES,那么球将不再移动。这是可能的还是有更好的方法

谢谢
Tanner

我建议您创建一个ball对象。并将布尔值添加为对象的一部分。

我建议您创建一个ball对象。并将布尔值添加为对象的一部分。

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);
作为对userData属性的改进,您可以按照宣翁的建议创建一个包含球的各种游戏相关属性的ball对象,并使用上述方法为每个球CCSprite分配一个实例。

CCNodes(通过继承,CCSprites)具有userData属性,该属性为空*。您可以使用此选项将自定义对象与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);
作为对userData属性的改进,您可以按照玄翁的建议创建一个包含球的各种游戏相关属性的球对象,并使用上述方法为每个球CCSprite分配一个实例