Vin*_*nce 4 sprite-kit skphysicsbody
我正在制作一个带有精灵套件的游戏,现在我想知道最好的方法是让对象'跳'.所以它将以几个像素垂直启动.这是我想要跳转的对象的代码:
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"bal.png"];
sprite.position = CGPointMake(self.frame.size.width/4 + arc4random() % ((int)self.frame.size.width/2), (self.frame.size.height/2 + arc4random() % ((int)self.frame.size.height/2)));
sprite.color = [self randomColor];
sprite.colorBlendFactor = 1.0;
sprite.xScale = 0.2;
sprite.yScale = 0.2;
[self addChild:sprite];
sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];
self.physicsWorld.gravity = CGVectorMake(0.0f, -4.0f);
Run Code Online (Sandbox Code Playgroud)
我会尽量避免直接设置对象的速度.相反,我会对物体施加力和冲动.对于大多数情况,这样做效果更好,因为它不会破坏物理模拟.例如,这就是我让对象跳转的方式:
- (void) jump:(SKSpriteNode*)obj
{
if (obj.isTouchingGround)
{
CGFloat impulseX = 0.0f;
CGFloat impulseY = 25.0f;
[object.physicsBody applyImpulse:CGVectorMake(impulseX, impulseY) atPoint:obj.position];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4080 次 |
| 最近记录: |