2012-07-29 5 views
0

저는 플레이어와 같이 "뱀 게임"을 만들고 있고, 몸이 움직여서 이전 위치에 블록이 추가 될 때마다 움직이면서 마지막으로 제거합니다. . 각 블록을 NSMutableArray (각 블록은 스프라이트이고 배열에 스프라이트를 추가 함)에 추가하고 배열의 스프라이트 중 하나의 위치를 ​​얻는 방법을 궁금해하고 있습니다. 나는 "머리"가 스스로 움직이고 있는지 확인하기 위해 이것을 필요로한다.변경 가능 배열 및 스프라이트

P. iPhone 용 cocos2d를 사용하고 있습니다.


위치라고하면 배열의 인덱스 위치가 아니라 좌표를 의미합니다. 장면 i을 시작


[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]; 
} 

0으로 설정하고 최대 건강은 3

+0

변수를 배열에 넣는 방법을 묻는 질문이 있으십니까? 또는 스프라이트의 위치를 ​​얻는 방법을 묻고 있습니까? –

+0

배열 내부에서 스프라이트의 위치를 ​​얻는 방법. – stenger96

+0

스프라이트의 위치를 ​​얻는 방법을 이미 알고 있습니까? 배열에 객체를 저장하는 방법을 알고 있습니까? –

답변

2

배열에서 노드의 위치를 ​​가져옵니다 같다? 마찬가지로

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

노드가 아니라 스프라이트이긴하지만, 스프라이트와 똑같이 할 수있을 것 같아요? – stenger96

+0

예, CCSprite는 실제로 CCNode이므로이 방법도 사용할 수 있습니다. – Voldemort

+0

나는 이것을 시험해 보았지만 배열과 장면에서 스프라이트를 제거한 후에도 x는 동일하다는 것을 기록했다. (NSLog는 스프라이트 중 하나가 플레이어와 동일한 x 값을 가질 때 동등합니다.) 어떤 아이디어입니까? * 실제로 편집하면 SIGABRT가 발생합니다 – stenger96

관련 문제