【发布时间】:2014-05-07 14:27:08
【问题描述】:
我正在 SpriteKit 中构建一个简单的游戏,玩家使用加速度计控制一个球,以捕捉不同的道具、硬币等。问题是,当调用负责生成随机新 powerup(node) 的方法 (generatePowerUp) 时,它总是在 (0,0) 坐标处创建一个新的。在其他任何地方调用的相同方法都可以正常工作。
- (void)generatePowerUp {
CGPoint newPoint = CGPointMake([self randomFloatBetween:30 and:290], [self randomFloatBetween:30 and:450]);
powerUp = [SKSpriteNode spriteNodeWithImageNamed:@"me"];
powerUp.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.powerUp.size.width/2];
powerUp.physicsBody.categoryBitMask = powerUpCategory;
powerUp.position = newPoint;
powerUp.physicsBody.contactTestBitMask = playerCategory;
[self addChild:powerUp];
}
-(void)didBeginContact:(SKPhysicsContact *)contact{
if (contact.bodyA.categoryBitMask == powerUpCategory) {
[contact.bodyA.node removeFromParent];
myScore++;
[self generatePowerUp];
}
if (contact.bodyB.categoryBitMask == powerUpCategory) {
[contact.bodyB.node removeFromParent];
myScore++;
[self generatePowerUp];
}
}
任何想法为什么会发生这种情况?我用nslog检查了创建的随机点,没有问题。
【问题讨论】:
标签: ios objective-c xcode ios7 sprite-kit