我正在尝试将玩家旋转到触摸状态.使用触摸移动功能,我将位置设置为变量.然后我调用一个函数.它工作但角度是关闭的.位置是全局变量,玩家是我要转的精灵.大约15度.
   func rotatePlayer(){
     let angle = atan2(location!.y - player!.position.y , location!.x - player!.position.x)
    player?.zRotation = angle
}
根据SpriteKit 最佳实践文档
\n\n\n\n\n使用与 SpriteKit\xe2\x80\x99s 坐标和旋转约定匹配的游戏逻辑和艺术资源。这意味着将艺术品定向到右侧。如果您将图稿定向到其他方向,则需要在图稿使用的约定和 SpriteKit 使用的约定之间转换角度。
\n
由于默认的宇宙飞船指向上方(当 zRotation 为 0 时),因此您需要将角度偏移 90 度(pi/2 弧度),以便当 zRotation 为零时飞船面向右侧:
\n\nplayer?.zRotation = angle - CGFloat(M_PI_2)\n或者,您可以将宇宙飞船旋转到右侧。要旋转图像,请单击 Assets.xcassets,然后单击 Spaceship。右键单击太空飞船图像,然后选择“在外部编辑器中打开”菜单项。这将在预览应用程序中打开图像。在“预览”中,选择“工具”>“向右旋转”并退出“预览”。通过旋转图稿,您的代码应该无需任何更改即可运行。
\n| 归档时间: | 
 | 
| 查看次数: | 877 次 | 
| 最近记录: |