2016-05-11 80 views
0

我有一个SKSpriteNode,我用这个代码SKSpriteNode想到的是(空)后动初始化

//viewDidLoad 
bullet = [SKSpriteNode spriteNodeWithImageNamed:@"missile2"]; 
bullet.xScale = 1; 
bullet.yScale = 1; 
bullet.position = CGPointMake(67, 148); 
bullet.zRotation = M_PI; 
[self addChild:bullet]; 

初始化前一个问题,我问为什么我不能设置它的位置,我们确定,这是因为精灵是空的,当我登录NSLog(@"bullet is %@",bullet);

这是一个问题的链接。

Sprite position not working in Objective C, Xcode

我的问题是,为什么Xcode中认为这是精灵空当我在viewDidLoad中初始化呢?

+0

声明'bullet'变量在哪里(不是在哪里被初始化)? – Gliderman

+0

它在.h文件中用'SKSpriteNode * bullet'声明;' – user3386154

回答

0

我猜你只是调用

NSLog(@"bullet is %@",bullet); 

bullet属性初始化。

也许你把NSLog一行放在init对吧?这将是一个解释,因为init确实发生在viewDidLoad之前。

+0

我不完全理解发生了什么,但是我已经完成了它的工作。事实证明,我是从另一个文件以错误的方式调用一个方法,我必须重新初始化它,因为我的所有变量都设置为0.我以不同的方式调用了该方法,并且它工作正常。 – user3386154