SpringKit PhysicsBody 常用的一些属性

physicsBody属性:
* 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节点都是刚体(见度娘),所以接触一类的事件,就局限这个样子



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值