0

所以在我的项目中,我在“Survival.m”类中调用了一个名为“-(void)fire”的实例方法:

-(void)fire {


NSLog(@"Firing");



CCSprite *sprite = [CCSprite spriteWithFile:@"bullet.png"];
sprite.position = player.position;
NSLog(@"%@",NSStringFromCGPoint(player.position));

[self addChild:sprite z:100];


}

当我这样做时,精灵不会显示在屏幕上。该方法是从另一层调用的,但由于每次点击按钮时都会记录“Firing”,所以这不是问题。

如果这可能导致任何问题,我也在使用 TMXTiledMap。请帮忙,谢谢!

编辑 - - - - -

我可以在另一层 HUDLayer 中创建精灵,但不能在包含玩家和平铺地图的生存层中创建精灵。如果我在“init”方法中创建一个精灵,它可以正常工作,但如果我在“fire”方法中这样做,它就不起作用。正在从 HUDLayer 调用“fire”方法,但我现在仍然在调用该方法,因为我在日志中看到它说“Firing”

会不会是这样: 1. 精灵是在看不见的地方创建的?2. 精灵没有被创建?3. 精灵没有添加到正确的父级?

有什么建议么?

4

2 回答 2

0

在 cocos2d 中添加一个精灵做这样的事情

CCNode *parent = [self getChildByTag:kTagParentNode];
[parent addChild:sprite];

如果这不能解决问题,请确保添加它的位置在屏幕上,然后尝试更改 z 值以查看是否有帮助

编辑

在你导入文件的地方添加这个

enum {
kTagParentNode = 1,
};
于 2013-01-27T20:39:09.347 回答
0

谢谢大家,以某种神秘的方式解决了它。无论如何感谢您的帮助。我想我以错误的方式声明了该层。祝你今天过得愉快!

于 2013-01-28T18:36:50.077 回答