2012-07-29 92 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