我正在制作一个14岁的孩子在cocos2d中制作游戏。我对cocos2d很新。我想在彼此旁边显示相同的硬币精灵来制作图案。
所以我在我的主要游戏层中添加了这个:
- (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'
。有人可以告诉我如何更改代码以便这样做吗?
谢谢!
答案 0 :(得分:1)
menuWithItems:
获取一组CCMenuItem
个对象,您自己发送一个类。我不知道班级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非常好,它可以帮助您更好地了解您需要做什么以及如何做。
祝你好运!