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

CFrame tween help making Cframe tween?

Hello, So I am learning CFrame. Can someone explain to me how I would 'tween' a brick to move?

I am not asking for a request; but for someone to explain to me how to do it.

Thanks

1 answer

So i would use some sort of loop, rather it be a while, for, or repeat loop. I will show you some examples

for i = 0, 1, .05, do
	cframe = lCFrame:lerp(nCFrame, i)
	game:GetService('RunService').Heartbeat:wait()
end


local amountOfTime = 5
local start = tick()
repeat
	cframe = lCFrame:lerp(nCFrame, (tick() - start)/amountOfTime)
	game:GetService('RunService').Heartbeat:wait()
until (tick() - start) >= amountOfTime

As you can see, over time our number increases and ends up at 1, and usually, no more. In the for loop we have the variable, i, increase by .05 every time through the loop, and it ends at 1.

As for the repeat loop, in this example it doesn't end up at precisely 1 everytime. Because the Heartbeat event does not fire every n number of seconds and it is not divisible by 1 all the time. Although, we could end it at 1 by checking if it is already more than one.

local amountOfTime = 5
local start = tick()
repeat
	local alpha = (tick() - start)/amountOfTime
	if alpha <= 1 then
		cframe = lCFrame:lerp(nCFrame, alpha)
	else
		cframe = lCFrame:lerp(nCFrame, 1)
		break
	end
	game:GetService('RunService').Heartbeat:wait()
until (tick() - start) >= amountOfTime

I hope this helps you!

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