Hello,
So I was searching the Wiki and found the Part Sliding
way to move a brick. What I would like to do if be able to move a brick. It would have a button and when I click the button the brick would move up, just like a stage curtain. I am pretty fair at scripting but Cframe is my main weakness. I can't seem to find any useful scripts to look at. If someone could please assist me I would truly appreciate that.
Thanks, Ant
Hey Antux,
local detector = script.Parent; -- Variable for the ClickDetector local tween_service = game:GetService("TweenService") -- Variable for the TweenService local curtain = workspace:WaitForChild("Curtain"); -- Variable for the Curtain local old_pos = curtain.CFrame; -- Variable for the Curtain's CFrame that we will be position the Curtain by. local first = false; -- Variable to keep track of whether the part's supposed to go up or down. local info = TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut); -- The TweenInfo. The part will take 2 seconds to reach either up or down in a perfect situation. It's going to move linearly. local y = 50; -- Variable for the amount of studs the part will go up. local cframe; -- Variable for the CFrame that the part will need to reach. function move_part() -- Declaration of the function that will later be connected with the detector's MouseClick() event. if first == false then -- Checks if it's the first click of the user. first = true; -- Sets the 'first' variable to true since it is the first click. cframe = old_pos * CFrame.new(0, y, 0) -- Sets the CFrame the part will need to reach. (In this case straight up relative to the Curtain's old position. else -- If it's not the first click then it will go here. first = false; -- Sets the 'first' variable back to false since it's the second click. cframe = old_pos; -- Sets the CFrame back to it's initial position so that it can go back to where it started from. end -- end for the if statement to check if it's the first click or second click. local goal = {CFrame = cframe}; -- Variable for the goal now that we know what CFrame the part will need to go to. local tween = tween_service:Create(curtain, info, goal); -- The whole tween of the Curtain, including the instance, info and goal the part is trying to reach. tween:Play(); -- Plays the Tween animation on the part end -- end for the function. detector.MouseClick:Connect(move_part); -- Connects the function to the MouseClick() event of the ClickDetector.
Updated the script 'cause the old one had issues.
~~ KingLoneCat