如何在 Swift 中不旋转精灵的情况下在曲线中移动 SKSpriteNode
How to move SKSpriteNode in a curve without rotating the sprite in Swift
我正在尝试使用曲线移动精灵。
我得到了这个代码:
let path = UIBezierPath()
path.move(to: CGPoint.zero)
path.addQuadCurve(to: CGPoint(x: ball.position.x+200, y: ball.position.y+50), controlPoint: CGPoint(x: ball.position.x+100, y: ball.position.y+200))
ball.run(SKAction.follow(path.cgPath, speed: 1.0))
我有几个问题:
1 - 为什么我的精灵在移动时在旋转,我是否可以控制这种旋转?
2 - 知道为什么球只移动了一小部分并且非常缓慢且移动不平稳(10-20 秒)吗?
有人知道这段代码是如何工作的吗?
我找到的所有答案都与具有不同方法的旧 Swift 版本有关。
终于找到解决办法了:)
func beizerSprite()
{
// create a bezier path that defines our curve
let path = UIBezierPath()
path.move(to: CGPoint(x: 16,y: 239))
path.addCurve(to:CGPoint(x: 301, y: 239),
controlPoint1: CGPoint(x: 136, y: 373),
controlPoint2: CGPoint(x: 178, y: 110))
// use the beizer path in an action
_playButton.run(SKAction.follow(path.cgPath,
asOffset: false,
orientToPath: true,
speed: 50.0))
}
这会沿屏幕移动 SKSprite
曲线。
我正在尝试使用曲线移动精灵。 我得到了这个代码:
let path = UIBezierPath()
path.move(to: CGPoint.zero)
path.addQuadCurve(to: CGPoint(x: ball.position.x+200, y: ball.position.y+50), controlPoint: CGPoint(x: ball.position.x+100, y: ball.position.y+200))
ball.run(SKAction.follow(path.cgPath, speed: 1.0))
我有几个问题: 1 - 为什么我的精灵在移动时在旋转,我是否可以控制这种旋转? 2 - 知道为什么球只移动了一小部分并且非常缓慢且移动不平稳(10-20 秒)吗?
有人知道这段代码是如何工作的吗? 我找到的所有答案都与具有不同方法的旧 Swift 版本有关。
终于找到解决办法了:)
func beizerSprite()
{
// create a bezier path that defines our curve
let path = UIBezierPath()
path.move(to: CGPoint(x: 16,y: 239))
path.addCurve(to:CGPoint(x: 301, y: 239),
controlPoint1: CGPoint(x: 136, y: 373),
controlPoint2: CGPoint(x: 178, y: 110))
// use the beizer path in an action
_playButton.run(SKAction.follow(path.cgPath,
asOffset: false,
orientToPath: true,
speed: 50.0))
}
这会沿屏幕移动 SKSprite
曲线。