Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift SceneKit-使用鼠标旋转摄影机_Swift_Macos_Scenekit - Fatal编程技术网

Swift SceneKit-使用鼠标旋转摄影机

Swift SceneKit-使用鼠标旋转摄影机,swift,macos,scenekit,Swift,Macos,Scenekit,我正在尝试实现fps控制机制。问题是我的相机开始向想要的方向移动,然后来回跳跃。。。我也不知道如何连接两个或多个轴。这是我的密码: func gameView(didReceiveMouseMovedEvent event: NSEvent) { if let p = self.lastMouseP{ var x:CGFloat = 0 x = event.locationInWindow.x - p.x v

我正在尝试实现fps控制机制。问题是我的相机开始向想要的方向移动,然后来回跳跃。。。我也不知道如何连接两个或多个轴。这是我的密码:

func gameView(didReceiveMouseMovedEvent event: NSEvent) {
        if let p = self.lastMouseP{
            var x:CGFloat = 0
            x = event.locationInWindow.x - p.x
            var y:CGFloat = 0
            y = event.locationInWindow.y - p.y
            self.player.move(cameraByX: 0, y: x, z: y, w: 0)
        }
        self.lastMouseP = event.locationInWindow
 }
在播放器文件中:

func move(cameraByX x: CGFloat, y: CGFloat, z:CGFloat, w:CGFloat){
        let rot = self.head.rotation
        let xx  = (x)*CGFloat(M_PI)/180.0 + rot.x
        let yy  = (y)*CGFloat(M_PI)/180.0 + rot.y
        let zz  = (z)*CGFloat(M_PI)/180.0 + rot.z
        //let xr = SCNMatrix4MakeRotation(xx, 1, 0, 0)
        let yr = SCNMatrix4MakeRotation(yy, 0, 1, 0)
        let zr = SCNMatrix4MakeRotation(zz, 0, 0, 1)
        self.head.transform = SCNMatrix4Mult(self.head.transform, zr)
}

老鼠这是为macOS而不是iOS设计的吗?哦,是的。。。对不起,我错过了关键字。。。我通常会问iOS。。很抱歉