【问题标题】:SceneKit Physics – Friction and Concave PolyhedronsSceneKit 物理 - 摩擦和凹多面体
【发布时间】:2015-06-13 19:25:22
【问题描述】:

我正在使用 Scene Kit 开发一个玉米洞游戏,遇到了 SCNPhysicsShape 和 SCNPhysicsBody 摩擦的错误。游戏的棋盘通过.dae 文件加载并设置为SCNPhysicsShapeTypeConcavePolyhedron。这允许豆袋从孔中掉下来,但它似乎消除了板上的摩擦。当豆袋碰到板子时,尽管摩擦值为 1.0(豆袋的摩擦值也为 1.0),但它还是会滑落。如果我将板子更改为SCNPhysicsShapeTypeConvexHull,那么摩擦会起作用,但豆袋不会从孔中掉下来。

这是我的自定义板初始化:

let geo = nodeWithFile("board.dae").geometry!

geo.materials = [SCNMaterial()] 
geo.firstMaterial!.diffuse.contents = "wood_texture.png"
geo.firstMaterial!.diffuse.wrapS = SCNWrapMode.Repeat
geo.firstMaterial!.diffuse.wrapT = SCNWrapMode.Repeat
geo.firstMaterial!.diffuse.mipFilter = SCNFilterMode.Linear

self.geometry = geo
self.position = position
self.rotation = SCNVector4Make(1, 0, 0, -CFloat(degreesToRadians(65.0)))

let shape = SCNPhysicsShape(geometry: geo, options: [SCNPhysicsShapeTypeKey: SCNPhysicsShapeTypeConcavePolyhedron])

self.physicsBody = SCNPhysicsBody(type: .Static, shape: shape)
self.physicsBody!.restitution = 0.0
self.physicsBody!.rollingFriction = 1.0
self.physicsBody!.friction = 1.0

这是豆袋的自定义初始化

let geo = SCNBox(width: 20.0, height: 4.0, length: 20.0, chamferRadius: 5.0)

self.geometry = geo
self.position = position
self.geometry!.firstMaterial!.diffuse.contents = UIColor.blueColor()

let shape = SCNPhysicsShape(geometry: geo, options: [SCNPhysicsShapeTypeKey: SCNPhysicsShapeTypeBoundingBox])

self.physicsBody = SCNPhysicsBody(type: .Dynamic, shape: shape)
self.physicsBody!.restitution = 0.0
self.physicsBody!.rollingFriction = 1.0
self.physicsBody!.friction = 1.0

这些都在子类 SCNNode 的类的 init 方法中

我的问题是:我怎样才能将板保持为ConcavePolyhedron 并同时让摩擦起作用?

【问题讨论】:

    标签: iphone swift xcode scenekit scnnode


    【解决方案1】:

    这可能不是最好的答案,但它会起作用。将您的电路板重新设计成多个部分,在中间留下一个不属于几何图形的孔。

    【讨论】:

    • 您甚至不必重新设计电路板的可见几何形状——只需给它一个由多个原始形状(如框)组成的SCNPhysicsShape 来作为其碰撞表面。
    • 好的,所以基本上创建多个板片并将它们排列成板的形状,在中间留下一个洞?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-08
    • 2017-06-10
    相关资源
    最近更新 更多