小编Mic*_*ael的帖子

SpriteKit球失去所有能量击中墙壁,恢复原状= 1

如果我在y方向施加1的冲击,球会来回反弹而不会失去任何能量.但是,如果初始脉冲为0.5或更低,球在撞到墙壁时会立即失去所有能量.为什么会这样?我非常了解SKPhysicsBody类的属性.尝试使用此代码查看您是否在计算机上获得相同的行为.

-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
    /* Setup your scene here */
    self.physicsWorld.gravity = CGVectorMake(0.0f, 0.0f);
    SKPhysicsBody* borderBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
    self.physicsBody = borderBody;
    self.physicsBody.friction = 0.0f;
    self.backgroundColor = [SKColor colorWithRed:0.7 green:0.7 blue:0.7 alpha:1.0];

    SKShapeNode *ball = [SKShapeNode node];
    CGMutablePathRef pathToDraw = CGPathCreateMutable();
    [ball setStrokeColor:[UIColor blackColor]];
    CGPathMoveToPoint(pathToDraw, NULL, 0, 0);
    CGPathAddEllipseInRect(pathToDraw, NULL, CGRectMake(-16, -16, 32, 32));
    ball.path = pathToDraw;

    ball.position = CGPointMake(size.width / 2, size.height / 2);
    ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:ball.frame.size.width/2];
    ball.physicsBody.friction = 0.0f;
    ball.physicsBody.restitution = 1.0f; …
Run Code Online (Sandbox Code Playgroud)

ios sprite-kit

11
推荐指数
1
解决办法
779
查看次数

标签 统计

ios ×1

sprite-kit ×1