local prevx, prevy return function(entities, id, data) if not prevx then prevx, prevy = data.xpos, data.ypos end local dx = data.xpos - prevx local dy = data.ypos - prevy prevx, prevy = data.xpos, data.ypos local node = entities:getComponent(id, "node") local py = entities:getComponent(id, "pitchyaw") py.pitch = py.pitch - dy py.yaw = py.yaw - dx if py.pitch > 89.9 then py.pitch = 89.9 end if py.pitch < -89.9 then py.pitch = -89.9 end node.matrix :identity() :rotateY(math.rad(py.yaw)) :rotateX(math.rad(py.pitch)) end