* area: (不可变)
* mass: 质量
* density: 密度
* friction: 摩擦力
* linearDamping: 阻力
* angularDamping: 角力(旋转的力 与环境有关)
* resitution: 势能,(碰撞效果强弱) 0.0f - 1.0f
* dynamic: 动态的physicsBody默认为YES,静态为NO
* affectedByGravity:YES接受重力影响
* allowsRotation: NO 即为冻结旋转
* force:持续的力 ,每一帧都要设置
* impulse:瞬时的力
* categoryBitMask: 标记了属于哪一类物体 默认:0xfffffffff
* contactTestBitMask:标记了那些物体可以与其发生碰撞,并产生影响 默认:0x00000000
* collisionBitMask:标记了和那些物体可以碰撞 默认:0xfffffffff
* usesPreciseCollisionDetection:提高碰撞精度
一个例子:(配图什么的自换吧)
//创建物理世界
-(void)createPhysicsScene{
SKView *skview = [[SKView alloc]initWithFrame:self.view.frame];
skview.showsFPS = YES;
skview.showsNodeCount = YES;
[self.view addSubview:skview];
_scene = [SKScene sceneWithSize:self.view.frame.size];
[skview presentScene:_scene];
self.scene.physicsWorld.gravity = CGVectorMake(0,-9.7);
self.scene.physicsWorld.contactDelegate = self;
}
//创建一个试验的节点
- (void)creatSpringNode:(NSString *)imageName{
SKSpriteNode *imageNode = [SKSpriteNode spriteNodeWithImageNamed:imageName];
imageNode.position = CGPointMake(self.offSetW / 2, self.offSetH / 2);
imageNode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:imageNode.size];
imageNode.physicsBody.restitution = 1.0;
imageNode.physicsBody.dynamic = YES;
imageNode.physicsBody.allowsRotation = YES;
imageNode.physicsBody.categoryBitMask = monsterCategory;
imageNode.physicsBody.contactTestBitMask =projectileCategory;
imageNode.physicsBody.collisionBitMask = projectileCategory;
imageNode.physicsBody.affectedByGravity = YES;
imageNode.physicsBody.usesPreciseCollisionDetection = YES;
[self.scene addChild:imageNode];
}
//边界
-(void)createSceneContents{
self.scene.backgroundColor = [UIColor purpleColor];
self.scene.scaleMode = SKSceneScaleModeAspectFill;
CGRect rect = self.scene.frame;
self.scene.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(127, 250,100, 100)];
}
弄好了之后就来回蹦,因为SK节点都是刚体(见度娘),所以接触一类的事件,就局限这个样子