swift - Swift 4.1 中的 SpriteNode 移动和旋转

标签 swift sprite-kit sprite skspritenode skaction

我试图让我的 Sprite 移动并旋转到我触摸的位置,并随着我在屏幕上移动手指而跟随。运动部分工作正常,但我似乎无法让它旋转。我的 moveAndRotate 函数如下。

func moveAndRotate(spriteNode: SKSpriteNode, toPosition position: CGPoint) {
    let angle = atan2(position.y -  player.position.y, position.x - player.position.x)

    let rotateAction = SKAction.rotate(toAngle: angle - -(CGFloat(Double.pi / 2)), duration: 0.05, shortestUnitArc: true)
    player.run(rotateAction)

    let offsetX = position.x - player.position.x
    let offsetY = position.y - player.position.y
    let normal = simd_normalize(simd_double2(x: Double(offsetX), y: Double(offsetY)))

    velocity = CGVector(dx: CGFloat(normal.x) * movePointsPerSecond, dy: CGFloat(normal.y) * movePointsPerSecond)
}

最佳答案

rotateAction 的持续时间设置为 o.5,将其更改为 0 即可正常工作。

关于swift - Swift 4.1 中的 SpriteNode 移动和旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53159624/

相关文章:

ios - 带有选择器错误的快速覆盖方法

swift - 我的相机应用程序 Swift 代码中有几个错误

swift - SKCropNode 奇怪的行为

python - 如何让敌人跟随pygame中的玩家?

android - 找不到不使用 GL11Ext 进行绘图的 android 2d opengl Sprite 类的合适示例

2d - 有没有 webgl 的 2d sprite 库?

ios - 无法为 UITableView 创建框架

ios - 如何正确管理屏幕上的 Sprite 组

sprite-kit - SpriteKit 1维运动

ios - 添加选项卡栏 Controller 后不会触发 Unwind segue 和 nav 按钮项目