【发布时间】:2014-10-16 23:13:35
【问题描述】:
我是 SpriteKit 的新手,我在物理方面遇到了一些问题,我尝试了很多方法来使 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;
}
这是我的主要场景中的大部分代码,除了一些空方法,如 update 或 touchesBegan 之外,没有别的了。我错过了什么吗?我尝试了很多东西,我开始失去它了哈哈
非常感谢您的帮助!
【问题讨论】:
-
您编写了错误的代码您的 pointOfView 不受重力影响您只是在其上施加了一个小推动力。
标签: ios objective-c sprite-kit skspritenode skphysicsbody