Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Tweening animations wont play?

Asked by
H4X0MSYT 536 Moderation Voter
8 years ago

I've checked the developer log, no errors relating to this script. The tweening just doesn't play. . Anyway, I have this system to tween 2 things at once, Coroutines just didn't time correctly. so I did this in the main script:

01local Int = Instance.new("IntValue")
02    Int.Parent = screen
03    Int.Name = "TweenTrigger"
04    Int.Value = 0
05    local Left, Right = game.ReplicatedStorage.Left, game.ReplicatedStorage.Right
06    Left:Clone().Parent = screen
07    Right:Clone().Parent = screen
08    while wait() do
09        if Int.Value == 2 then
10            Int.Value = Int.Value + 1

In two seperate scripts named Left and Right, for the tweening, I have this code:

01while wait() do
02    if script.Parent.Name == "LoadGui" then break end
03end
04local Int = script.Parent:WaitForChild("TweenTrigger").Value
05local Right = script.Parent.Right
06Int = Int + 1
07if Int == 3 then
08    Right:TweenPosition(UDim2.new(1.5, 0, 0, 0), "In", "Sine", 5, false, nil)
09    Right:Destroy()
10    script:Destroy()
11end

Any ideas as to why this wouldn't work are appreciated

2 answers

Log in to vote
0
Answered by 8 years ago

If I remember correctly, the tweening function does NOT yield the script while it is running... What is happening is that the gui is immediately deleted before it finishes tweening.... You should put a wait() to fix this

1if Int == 3 then
2    Right:TweenPosition(UDim2.new(1.5, 0, 0, 0), "In", "Sine", 5, false, nil)
3    wait(5) --Wait must be put here XD
4    Right:Destroy()
5    script:Destroy()
6end
0
use local tween = Right:TweenPosition(UDim2.new(1.5, 0, 0, 0), "In", "Sine", 5, false, nil), repeat wait() until tween.TweenStatus == Enum.TweenStatus.Completed (Wiki it though, not sure what the actual value is called) RubenKan 3615 — 8y
0
What about the repeat until? Unless right and left are created at the exact same time.. H4X0MSYT 536 — 8y
0
It still doesn't play.. No errors H4X0MSYT 536 — 8y
Ad
Log in to vote
0
Answered by
H4X0MSYT 536 Moderation Voter
8 years ago
Edited 8 years ago

Ok here's my new code that should work but no? The animation doesn't play nor does the script continue with the deletion of the frame and script. I'm guessing its something in the second script. Yes, these are both local scripts. If it helps, its FE aswell. I've added prints around the script, and none print. So it must be the first loop in it.

01    local Int = Instance.new("IntValue")
02    Int.Parent = screen
03    Int.Name = "TweenTrigger"
04    Int.Value = 0
05    local Left, Right = game.ReplicatedStorage.Left, game.ReplicatedStorage.Right
06    Left:Clone().Parent = screen
07    Right:Clone().Parent = screen
08    while wait() do
09        if Int.Value == 2 then
10            Int.Value = Int.Value + 1
11 
12        end
13    end
14end
01while wait() do
02    if script.Parent.Name == "LoadGui" then break end
03end
04local Int = script.Parent:WaitForChild("TweenTrigger")
05local IntV = Int.Value
06local Right = script.Parent.Right
07IntV = IntV + 1
08 
09Int.Changed:connect(function(Num)
10    if Num == 3 then
11        Right:TweenPosition(UDim2.new(1, 0, 0, 0), "In", "Sine", 5, false, nil)
12        Right:Destroy()
13        script:Destroy()
14    end
15end)

Answer this question