2013-07-18 1 views
0

저는 14 세 어린이를 cocos2d에서 게임을 만들고 있습니다. 나는 cocos2d에 꽤 새로운 사람이다. 나는 패턴을 만들기 위해 서로 옆에 같은 동전 스프라이트를 표시하고 싶다.CCMenuItem 유형의 매개 변수에 'class'를 보내는 호환되지 않는 포인터 유형

그래서 난 내 주요 게임 플레이 층이 추가 :

- (void)coinPatterns {  
    menu = [CCMenu menuWithItems:[Coins class], [Coins class], self, nil]; 
    [menu alignItemsHorizontally]; 
    [self addChild:menu]; 
} 

을 그리고 이것은 내가 메뉴를 초기화하고 방법입니다

[[GameMechanics sharedGameMechanics] setSpawnRate:50 forMonsterType:menu]; 

이것은 내 동전 클래스에서 무엇 :

- (id)initWithMonsterPicture 
{ 
    self = [super initWithFile:@"coin.png"]; 
    if (self) 
    { 
     CGRect screenRect = [[CCDirector sharedDirector] screenRect]; 
     CGSize spriteSize = [self contentSize]; 
     posX = screenRect.size.width + spriteSize.width * 0.5f; 
     posY = 150; 
     self.initialHitPoints = 1; 
     self.animationFrames = [NSMutableArray array]; 
     [self scheduleUpdate]; 
     inAppCurrencyDisplayNode.score = [Store availableAmountInAppCurrency]; 
    } 
    coinValue = 3; 
    return self; 
} 
- (void)spawn 
{ 
    self.position = CGPointMake(posX, posY); 
    self.visible = YES; 
} 
- (void)gotCollected { 
    self.visible = FALSE; 
    self.position = ccp(-MAX_INT, 0); 
    [Store addInAppCurrency:coinValue]; 
} 

나는 계속 Incompatible pointer types sending 'class' to parameter of type 'CCMenuItem'이됩니다. 누군가가이 코드가 어떻게 작동하도록 변경해야하는지 알려주실 수 있습니까?

감사합니다.

답변

1

menuWithItems:CCMenuItem 개의 배열을 사용하므로 클래스 자체를 보냈습니다. I 클래스 Coin이 무엇 모르겠지만, 목적이 이미지를 보여주는 것입니다 후이 탭 뭔가를 할 경우 나는이 작업을 수행하는 것이 좋습니다 : 그 것

CCMenuItem *myCoin1 = [CCMenuItemImage 
    itemFromNormalImage:@"coin.png" selectedImage:@"coinSelected.png" 
    target:self selector:@selector(coin1WasTapped:)]; 
CCMenuItem *myCoin2 ... 
menu = [CCMenu menuWithItems: myCoin1, myCoin2, myCoin3, ..., nil]; 

당신은 방법 coin1WasTapped:을 만들어야합니다 동전이 두드려 졌을 때 불려지므로 여기에 동전을 "모을"수 있습니다. 어쩌면 menu이나 애니메이션에서 제거 할 수 있습니다.

많은 동전을 만들려면 for 루프를 사용하여 어레이에 모든 동전을 만드는 것이 좋습니다. 이렇게하면 나중에 조작하기가 더 쉬워집니다.

tutorial은 정말 좋습니다. 필요한 작업과 수행 방법을 더 잘 이해하는 데 도움이 될 수 있습니다.

행운을 빈다.

+0

당신이 말한대로 했는데도 여전히 경고 메시지가 나타납니다. 'CCMenuItem *'유형의 매개 변수에 'Coins * __ strong'을 보내는 호환되지 않는 포인터 유형 ' –

+0

'동전 종류는 무엇입니까? 버튼처럼 행동하길 원하십니까? –

+0

아니요, 동전을 수집 할 수 있지만 동전으로 수평선을 만들어 패턴에 넣고 싶습니다. 나는 동전을 수평으로 정렬 할 수 있도록 CCMenu를 사용하고 싶었습니다. CCMenu를 사용하지 않고 더 나은 방법이 있습니까? –

관련 문제