2012-07-29 62 views
0

我正在制作一个像玩家一样的“蛇形游戏”,并且我的身体正在移动,因此它会在前一个位置添加一个块,每次移动到4时它就会移除最后一个。等我将每个块添加到NSMutableArray(每个块是一个精灵,我将精灵添加到数组),我想知道如何获得阵列中的一个精灵的位置。我需要这个,所以我可以检查,看看“头”是否试图移动到自己。可变阵列和精灵

P.S.我为iPhone使用cocos2d。


当我说的位置我的意思是坐标,而不是数组中的索引位置。


[tail insertObject:block atIndex:i]; 
[self addChild:[tail objectAtIndex:i]]; 
i +=1; 
CCSprite *sect; 
for (int j = 0; j >= i; j++) { 
    sect = [tail objectAtIndex:j]; 
} 
if (i > maxHealth) { 
    [self removeChild:[tail objectAtIndex:i-maxHealth-1] cleanup:YES]; 
    id object = [tail objectAtIndex:i-maxHealth-1]; 
    [tail removeObject:object]; 
} 

当场景开始i被设置为0,最大的健康等于3

+0

你问如何将一个变量放入数组?或者你在问如何获得精灵的位置? – 2012-07-29 18:23:29

+0

如何获取阵列中的精灵位置。 – stenger96 2012-07-29 20:12:53

+0

你已经知道如何获得精灵的位置了吗?你知道如何将一个对象存储到数组中吗? – 2012-07-29 20:41:59

回答

2

获取在阵列中的节点的位置?像

// Get the node from the array 
CCNode *node = (CCNode*)[myArray objectAtIndex:0]; 
// Retrieve the position 
CGPoint nodePosition = node.position; 
+0

不是一个节点,而是一个精灵,但我猜我可以对精灵做同样的事情? – stenger96 2012-07-29 22:19:27

+0

是的,CCSprites实际上是CCNodes,所以这也会起作用。 – Voldemort 2012-07-29 22:43:22

+0

我试过这个,但是在从数组和场景中删除精灵之后,它仍然记录着x是相等的。 (如果其中一个精灵具有与玩家相同的x值,那么我的NSLog平等)任何想法为什么? *编辑其实它给了我SIGABRT – stenger96 2012-07-29 22:54:04