aig*_*tti 4 rotation sprite-kit skspritenode skshapenode swift
我正在关注本教程(我认为它是用 JavaScript 编写的):3D 地形
我在 Swift 中尝试使用 SpriteKit,但在 x 轴旋转时遇到问题。
我用以下代码创建了这个网格:
var shapePoints = [CGPoint]()
for i in 0...zeilen+1{
for j in 0...spalten{
shapePoints.append(CGPoint(x: zellenGroesse*j, y: zellenGroesse*i))
shapePoints.append(CGPoint(x: zellenGroesse*j, y: zellenGroesse*(i+1)))
}
}
let fertigeShape = SKShapeNode(points: &shapePoints, count: shapePoints.count)
self.addChild(fertigeShape)
Run Code Online (Sandbox Code Playgroud)
现在我想将其旋转一定角度,但我只能在 z 轴上旋转它,而不能在 x 轴上旋转它。
SpriteKit 中有没有办法也可以在 x 轴上旋转节点?
谢谢并致以诚挚的问候
从 iOS11 开始,您可以使用所谓的 SKTransformNode。当您想要对节点进行 3D 透视倾斜时,请将其作为子节点添加到 SKTransformNode,然后设置其 xRotation 或 yRotation(以弧度为单位的值)。
let t = SKTransformNode()
t.addChild(someNode)
scene.addChild(t)
t.xRotation = CGFloat.pi // tilts someNode by 180 degrees
Run Code Online (Sandbox Code Playgroud)
您还可以为更改设置动画,如下所示。
let degrees: CGFloat = 20
let radians = CGFloat.pi / 180 * degrees
let duration = 2.0
let tilt = SKAction.customAction(withDuration: duration) { (node, elapsed) in
let percent = elapsed / CGFloat(duration)
t.xRotation = percent * radians
}
tilt.timingMode = .easeOut
t.run(tilt)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1224 次 |
| 最近记录: |