我对SpriteKit有点新了,而且我在物理上遇到了一些麻烦,我尝试了很多事情来让SKSpriteNode用力或冲动移动,但它永远不会移动,只有重力影响它,当我设置它。iOS - SpriteKit:ApplyImpulse无法在SKSpriteNode上工作
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.anchorPoint = CGPointMake(0.5, 0.5);
myWorld = [SKNode node];
[self addChild:myWorld];
SKSpriteNode* map = [SKSpriteNode spriteNodeWithImageNamed:@"grass"];
[myWorld addChild:map];
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:map.frame];
self.physicsBody.friction = 0.0f;
self.physicsBody.categoryBitMask = 2;
self.physicsWorld.gravity = CGVectorMake(0.0, 0.0);
self.physicsWorld.contactDelegate = self;
pointOfView = [SKSpriteNode spriteNodeWithColor:[UIColor colorWithWhite:1 alpha:0.2] size:CGSizeMake(300, 548)];
[myWorld addChild:pointOfView];
pointOfView.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:pointOfView.frame.size];
pointOfView.physicsBody.friction = 0.0f;
pointOfView.physicsBody.restitution = 1.0f;
pointOfView.physicsBody.linearDamping = 0.0f;
pointOfView.physicsBody.allowsRotation = NO;
pointOfView.physicsBody.collisionBitMask = 2;
pointOfView.physicsBody.categoryBitMask = 3;
[pointOfView.physicsBody applyImpulse:CGVectorMake(10.0f, -10.0f)];
}
return self;
}
这里是我的大部分代码在我的主场景,有没有其他的像除外或更新一些的touchesBegan空的方法..我缺少的东西?我已经尝试了很多东西,我开始失去它了哈哈
非常感谢您的帮助!
你写了错误的代码,你的pointOfView不受重力影响,你只是在它上面应用一个小的impusle。 – dragoneye 2014-10-17 05:31:18