【问题标题】:How to stop a sprite from bouncing off a specific surface如何阻止精灵从特定表面反弹
【发布时间】:2015-03-17 04:21:48
【问题描述】:

嗨,我正在制作一个无尽的滚动游戏,角色基本上会在障碍物到来时避开障碍物,并且可以跳过它们。我让一切工作得很好,但我看到角色纹理在落地后会轻微反弹。我希望精灵在触地后立即停止。我尝试将 .restitution 属性设置为 0,但我仍然看到它弹跳。这是我的火柴人角色和有问题的边缘物理类别的设置代码

stickman.physicsBody?.dynamic = true
    stickman.physicsBody?.allowsRotation = false
    stickman.physicsBody?.usesPreciseCollisionDetection = true
    stickman.physicsBody?.categoryBitMask = PhysicsCategory.Stickman
    stickman.physicsBody?.collisionBitMask = PhysicsCategory.Edge
    stickman.physicsBody?.contactTestBitMask = PhysicsCategory.Obstacle | PhysicsCategory.Edge
    stickman.physicsBody?.restitution = 0


self.physicsWorld.gravity = CGVector(dx: 0, dy: -9.8)
    physicsBody = SKPhysicsBody(edgeLoopFromRect: playableRect)
    physicsWorld.contactDelegate = self
    physicsBody?.categoryBitMask = PhysicsCategory.Edge

可播放的矩形只是通用部署目的的屏幕边界。

有没有人遇到过这个问题。我在其他帖子中找不到相同的问题。

【问题讨论】:

    标签: ios swift sprite-kit


    【解决方案1】:

    将你的精灵运行的物理体的restitution也设置为0。物理碰撞中的两个物理体都需要恢复为 0 才能导致没有弹性。

    【讨论】:

    • 没问题!文档并没有说得很清楚。请记住在允许时接受答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多