【发布时间】:2013-01-27 20:35:33
【问题描述】:
所以在我的项目中,我在“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. sprite 没有添加到正确的父节点?
有什么建议吗?
【问题讨论】:
-
您说您是从另一个层调用该方法,如果是,您是否将生存层添加到另一个层?如果不是,那么它只是将精灵添加到本身没有添加到场景中的图层中......因此没有精灵出现
-
@simonthumper 生存层在 HUDLayer 中声明为 sL,因此,当我调用该方法时,我在 HUDLayer 中执行
[sL fire];
标签: ios cocos2d-iphone runtime-error sprite