Luc*_*len 6 sprite-kit skphysicsbody
我是xcode的sprite kit的新手,我试图将一个冲动应用于SKSpriteNode's物理体.以下是我创建场景的方法:
self.backgroundColor = [SKColor colorWithRed:0 green:0 blue:0 alpha:1.0];
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
self.physicsBody.friction = 0.0f;
self.physicsWorld.gravity = CGVectorMake(0.0f, 0.0f);
ballCategory = 1;
wallCategory = 2;
self.physicsBody.categoryBitMask = wallCategory;
Run Code Online (Sandbox Code Playgroud)
以下是我如何制作播放器并给予它的冲动:
player = [SKSpriteNode spriteNodeWithImageNamed:filePath];
player.size = CGSizeMake(100, 100);
player.position = CGPointMake(150, 250);
player.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:player.frame];
player.physicsBody.categoryBitMask = ballCategory;
player.physicsBody.collisionBitMask = wallCategory;
player.physicsBody.friction = 0.0f;
player.physicsBody.restitution = 1.0f;
player.physicsBody.linearDamping = 0.0f;
player.physicsBody.allowsRotation = NO;
[self addChild:player];
CGVector impulse = CGVectorMake(100,100);
[player.physicsBody applyImpulse:impulse];
Run Code Online (Sandbox Code Playgroud)
是否有任何明显的遗漏,因为我一直在完全关注iOS Developer Library Sprite Kit编程指南?在此先感谢您的帮助!
Bat*_*lia 12
你正在创造玩家的物理身体作为边缘身体 - 这些总是静态的(由力/冲动不可移动).您应该将该行更改为:
player.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:player.frame.size];
Run Code Online (Sandbox Code Playgroud)
此示例使其成为基于矩形的动态体积,该矩形将受到物理力的影响.您可以在这里阅读物理机构的类型.