Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Keep mouse in the center of the screen?

I am making a custom camera system, and the only problem I've come across so far is that if your mouse moves off screen, it doesn't allow it to rotate further. Is there something I can use to get the Mouse-Movement-Direction with LockCenter? (InputChanged fires, though I don't know how to get the direction of the mouse)

Code:

wait(2)
local Player=game.Players.LocalPlayer
local Input=game:GetService("UserInputService")
local Run=game:GetService("RunService")
local Mouse=Player:GetMouse()
local Camera=workspace.CurrentCamera
local Character=Player.Character

local Sensitivity=1

local CAX=0
local DAX=0
local CAY=0
local DAY=0
Run.RenderStepped:connect(function()
	CAX=CAX+((DAX/3)*Sensitivity)
	CAY=CAY+((DAY/3)*Sensitivity)
	DAX=0
	DAY=0
	if CAY>80 then CAY=80 end
	if CAY<-50 then CAY=-50 end
	Camera.CoordinateFrame=CFrame.new(Character.Head.Position)*CFrame.Angles(0,math.rad(CAX),0)*CFrame.Angles(math.rad(CAY),0,0)
	--[[
	local CF=CFrame.new(Character.Head.Position)*CFrame.Angles(0,math.rad(CAX),0)*CFrame.Angles(math.rad(CAY),0,0)
	local x,y,z,r1,r2,r3,r4,r5,r6,r7,r8,r9=CF:components()
	Camera:Interpolate(CFrame.new(x,y,z),CFrame.new(r1,r5,r9),.1)
	--]]
end)

Camera.CameraType="Scriptable"
Input.MouseBehavior=Enum.MouseBehavior.LockCenter

local PrevX=Mouse.X
local PrevY=Mouse.Y
Input.InputChanged:connect(function(Input,Bool)
	if Input.UserInputType==Enum.UserInputType.MouseMovement then
		local X=Input.Position.X
		local Y=Input.Position.Y
		--Old code using Mouse.Move
		if X>PrevX then
			DAX = PrevX - X
			PrevX=X
		elseif X<PrevX then
			DAX = PrevX - X
			PrevX=X
		end
		if Y>PrevY then
			DAY = PrevY - Y
			PrevY=Y
		elseif Y<PrevY then
			DAY = PrevY - Y
			PrevY=Y
		end
	end
end)

1 answer

✓ Accepted answer

Use Input.Delta. It's a Vector3 where the X/Y correspond to the amount the mouse moved in pixels.

This discussion is preserved as it was. New answers, comments, and votes are closed.