gpt4 book ai didi

iphone - SceneKit Physics——摩擦和凹多面体

转载 作者:搜寻专家 更新时间:2023-10-31 23:03:49 27 4
gpt4 key购买 nike

我正在 Scene Kit 中开发沙包游戏,遇到了 SCNPhysicsShapeSCNPhysicsBody 摩擦的错误。游戏的棋盘通过 .dae 文件加载,并设置为 SCNPhysicsShapeTypeConcavePolyhedron。这允许 bean 袋从孔中掉落,但它似乎消除了板上的摩擦力。尽管 bean 袋的摩擦值为 1.0( bean 袋的摩擦值为 1.0),但当 bean 袋撞到木板时它会立即滑落。如果我将板更改为 SCNPhysicsShapeTypeConvexHull,那么摩擦会起作用,但 bean 袋不会从孔中掉落。

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

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

下面是 bean 袋的自定义初始化

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 - SceneKit Physics——摩擦和凹多面体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29521395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com