- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在 Scene Kit 中开发沙包游戏,遇到了 SCNPhysicsShape
和 SCNPhysicsBody
摩擦的错误。游戏的棋盘通过 .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/
我有以下绘图代码: [[NSColor redColor] set]; NSRect fillRect = NSMakeRect(bounds.size.width - 20.0f, 0.0f, 20
给定一组相交的矩形,是否有标准算法来找到它们的边界多边形? (多边形的边界与矩形的并集完全相同。)可以假设所有矩形都以相同的方式定向,边沿两个正交轴。 在搜索中,我找到了凸边界多边形的算法,但在这里我
我想绘制非网格 3D 数据 (x, y, z) 的 matplotlib contour 或 contourf 图,该图在 x 中呈 C 形和 y(见草图)——因此数据周围的部分封闭外壳在 x 和 y
我需要绘制带有一些顶点的缩进(凹)实心多边形。我用 void HelloWorld::draw(void) { CCPoint vertices[5] = {ccp(200, 200), cc
这个有点难解释。我有一个整数列表。因此,例如,[1, 2, 4, 5, 8, 7, 6, 4, 1] - 当根据元素编号绘制时,它类似于凸图。我如何以某种方式从列表中提取此“形状”特征?它不必特别准确
我是一名优秀的程序员,十分优秀!