WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   Lua/XML Help (https://www.wowinterface.com/forums/forumdisplay.php?f=16)
-   -   [Animation] Scale "Pulsing" acting strangely (https://www.wowinterface.com/forums/showthread.php?t=54259)

Sweetsour 08-21-16 05:19 PM

[Animation] Scale "Pulsing" acting strangely
 
I'm trying to make an animation where I "pulse" an object's scale. I've got the animation to work, but the animation itself isn't acting as intended. See the gif below to see what I'm referring to.

https://gfycat.com/LittleSnarlingIvorygull

I'm sure one question that might be asked as to why I'm attempting to do this as Blizzard offers this effect already. The reason being that I'm looking to make it a "progress texture". The picture below is what I'm trying to achieve.



Below is my current code. Commented code is everything that I've tried.
Lua Code:
  1. -- Lava Surge Progress Bar/Texture
  2. SSA.LavaSurgeBar = CreateFrame("StatusBar","LavaSurgeBar",UIParent);
  3. local LavaSurgeBar = SSA.LavaSurgeBar;
  4.  
  5. LavaSurgeBar:SetStatusBarTexture("Textures\\SpellActivationOverlays\\Imp_Empowerment");
  6. LavaSurgeBar:GetStatusBarTexture():SetHorizTile(false);
  7. LavaSurgeBar:GetStatusBarTexture():SetVertTile(false);
  8. LavaSurgeBar:SetOrientation("VERTICAL");
  9. LavaSurgeBar:SetPoint("CENTER",UIParent,"CENTER",-130,0);
  10. LavaSurgeBar:SetWidth(116);
  11. LavaSurgeBar:SetHeight(200);
  12. LavaSurgeBar:SetFrameStrata("LOW");
  13. LavaSurgeBar:SetStatusBarColor(1,1,1);
  14.  
  15. LavaSurgeBar.bg = LavaSurgeBar:CreateTexture(nil,"BACKGROUND");
  16. LavaSurgeBar.bg:SetTexture("Textures\\SpellActivationOverlays\\Imp_Empowerment");
  17. LavaSurgeBar.bg:SetAllPoints(true);
  18. LavaSurgeBar.bg:SetVertexColor(1,1,1);
  19. LavaSurgeBar.bg:SetAlpha(0.5);
  20.  
  21. LavaSurgeBar.scaler = LavaSurgeBar:CreateAnimationGroup();
  22. LavaSurgeBar.scaler:SetLooping("BOUNCE");
  23. --LavaSurgeBar.scaler:SetLooping("REPEAT");
  24.  
  25. local scaleOut = LavaSurgeBar.scaler:CreateAnimation("Scale");
  26. scaleOut:SetFromScale(1,1);
  27. scaleOut:SetToScale(1,1.08);
  28. --scaleOut:SetScale(1,1.08);
  29. scaleOut:SetDuration(0.5);
  30. scaleOut:SetEndDelay(0);
  31. scaleOut:SetSmoothing("NONE");
  32. --scaleOut:SetSmoothing("OUT");
  33.  
  34. --[[local scaleIn = LavaSurgeBar.scaler:CreateAnimation("Scale");
  35. scaleIn:SetFromScale(1,1.08);
  36. scaleIn:SetToScale(1,1);
  37. --scaleIn:SetScale(1,1);
  38. scaleIn:SetDuration(0.5);
  39. scaleIn:SetOrder(1);
  40. scaleIn:SetSmoothing("NONE");
  41. scaleIn:SetEndDelay(0);]]
  42. --scaleIn:SetSmoothing("OUT");
  43. --scaleIn:SetEndDelay(0);

syncrow 08-21-16 10:50 PM

Lua Code:
  1. local scalePush = 1.2
  2. local scalePull = 1 / scalePush
  3.  
  4. local scaleOut = LavaSurgeBar.scaler:CreateAnimation("Scale")
  5. scaleOut:SetOrder(1)
  6. scaleOut:SetDuration(0.5)
  7. scaleOut:SetStartDelay(0.1)
  8. scaleOut:SetSmoothing("IN_OUT")
  9. scaleOut:SetFromScale(1, 1)
  10. scaleOut:SetToScale(1, scalePush)
  11.  
  12. local scaleIn = LavaSurgeBar.scaler:CreateAnimation("Scale")
  13. scaleIn:SetOrder(2)
  14. scaleIn:SetDuration(0.5)
  15. scaleIn:SetStartDelay(0.1)
  16. scaleIn:SetSmoothing("IN_OUT")
  17. scaleIn:SetFromScale(1,1)
  18. scaleIn:SetToScale(1, scalePull)
  19.  
  20. LavaSurgeBar.scaler:Play()


when doing scaleOut -> 1.2 is the new base value (100%) so you have to math out the old 1.0 by doing:
Quote:

1 / 1.2

Sweetsour 08-21-16 10:58 PM

That worked perfectly, thanks!


All times are GMT -6. The time now is 11:33 PM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI