let startsphere = SCNSphere(radius: CGFloat(0.2))
startsphere.firstMaterial?.diffuse.contents = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.3)
let startsphereNode = SCNNode(geometry: startsphere)
startsphereNode.position = SCNVector3(0.0, 1.0, 0.0) // center of playfield, 1m height
startsphereNode.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
startsphereNode.physicsBody?.isAffectedByGravity = false
startsphereNode.physicsBody?.friction = 0.0
startsphereNode.physicsBody?.rollingFriction = 0.0
startsphereNode.physicsBody?.damping = 0.0
startsphereNode.physicsBody?.restitution = 1.0
startsphereNode.physicsBody?.applyForce(SCNVector3(50000,0,0), at: startsphereNode.position, asImpulse: false)
// or like this
startsphereNode.physicsBody?.velocity = SCNVector3(200,0,0)
我观察球体在场景中的行为。当施加力(或设定速度)时,球体会瞬间向右侧跳出远距离,然后缓慢地向后(向左)移动到其先前设定的位置(0,1,0)。我能看见它穿过墙。
现在我的问题是:
>
为什么它向右跳(而不是移动)?我玩过冲量和速度的大小,但总是一样的。
我想要达到的行为是,在施加力后,球在我的盒子里反弹,根据物理设置。
有什么想法吗?多谢了。
以防万一这可能会帮助其他人:
问题是我的球体也有一个用于旋转的活动SCNAction。当我删除所有的SCNActions时,它开始按预期工作。
结果:不要同时使用SCNActions和物理模拟!
我有一个简单的3D区域,包含4个墙,每个墙是一个SCNNode,具有简单的SCNBox几何形状,矩形形状,并附上匹配的SCNPhysicsBody。SCNPhysicsBody使用SCNPhysicsShape.ShapeType.BoundingBox,并设置为静态类型。下面是一段代码片段: 在这个区域内,我以固定的时间间隔生成实体。每一个都有一个SCNBox几何形状,这一次是一个立方体形状,比
目标:在一个按钮点击中添加多个可变产品到购物车。 我试着将这段代码放入循环中,但它不起作用。 但是这种方法不能解决问题,因为我需要在一个按钮点击中添加几个产品变体。 所有的建议都将不胜感激。多谢了。
SceneKit-AdvancedStarterProject 为 SceneKit 3D 游戏开发提供了强有力的基础。它可以应用在 OS X 和 iOS 开发上。
所以我在做一个程序,在这里你可以有两个对象(圆)。我希望它们像行星一样围绕彼此运行,但只能是二维的。 我知道用牛顿万有引力定律,我可以得到两个物体之间的力。我也知道A=F/m,我的问题是我如何从前面的方程中得到A并把它变成一个向量?
我目前正在用Java开发一个2D太空游戏,你可以在太空中控制一艘船。游戏不使用任何外部库。 船应该向光标移动。然而,当移动光标时,旧的力量并没有神奇地消失;随着时间的推移,船改变了航向,最终朝着期望的方向移动。 然而,我遇到了一个关于船只移动的问题。基本上,我想要实现的是这张图片的粗略说明: 这张图片显示了船在一次比赛中应该如何移动。进一步解释: > 目标角是光标当前所在的位置。 当前角度是船舶当
我刚开始用box2d,我试着让火箭(现在是矩形)飞起来,当游戏开始时,它只是垂直地站着,我想从矩形的底部施加力量,因为那是引擎的位置,也是矩形面对的方向。我试着这样做 这是一种在按下屏幕右下角时执行的方法。它仅在矩形静止时工作。我显然不知道我在做什么。我还有另一个问题:applyLineairForce和applyForce之间有什么区别,我觉得使用box2d并不容易(这不是问题),我该如何最好地