base for jumppad
This commit is contained in:
parent
87f7b42ec3
commit
10555f646c
|
@ -2,15 +2,60 @@
|
|||
using SHADE_Scripting.Audio;
|
||||
using System;
|
||||
|
||||
|
||||
public class JumpPad : Script
|
||||
{
|
||||
private Transform tran;
|
||||
private float defaultScale;
|
||||
public float scaleMaxSize = 2.0f;
|
||||
public float scaleDuration = 0.25f;
|
||||
private bool landed = false;
|
||||
private bool scaleUpDone = false;
|
||||
|
||||
[NonSerialized]
|
||||
private TweenThread scaleUp;
|
||||
[NonSerialized]
|
||||
private TweenThread scaleDown;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
AudioHandler.audioClipHandlers["SFXJumpPad"] = Audio.CreateAudioClip("event:/Props/jumppad_boing");
|
||||
|
||||
tran = GameObject.GetComponent<Transform>();
|
||||
if (!tran)
|
||||
Debug.LogError("NO TRANSFORM");
|
||||
|
||||
defaultScale = tran.LocalScale.y;
|
||||
}
|
||||
|
||||
protected override void start()
|
||||
{
|
||||
scaleUp = TweenManager.CreateTweenThread(scaleDuration, tran.LocalScale.y, scaleMaxSize, EASING_METHOD.EASE_IN_SINE);
|
||||
scaleDown = TweenManager.CreateTweenThread(scaleDuration, tran.LocalScale.y, defaultScale, EASING_METHOD.EASE_IN_SINE);
|
||||
}
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
if (landed && tran)
|
||||
{
|
||||
tran.LocalScale = new Vector3(tran.LocalScale.x, scaleUp.GetValue(), tran.LocalScale.z);
|
||||
if (scaleUp.IsCompleted())
|
||||
{
|
||||
landed = false;
|
||||
scaleUpDone = true;
|
||||
scaleDown.Reset();
|
||||
}
|
||||
}
|
||||
|
||||
if (scaleUpDone && !landed)
|
||||
{
|
||||
tran.LocalScale = new Vector3(tran.LocalScale.x, scaleDown.GetValue(), tran.LocalScale.z);
|
||||
if (scaleDown.IsCompleted())
|
||||
{
|
||||
scaleUpDone = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected override void onCollisionEnter(CollisionInfo info)
|
||||
|
@ -20,7 +65,10 @@ public class JumpPad : Script
|
|||
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXJumpPad"], GameObject.EntityId);
|
||||
AudioHandler.audioClipHandlers["SFXJumpPad"].Play();
|
||||
info.GameObject.GetScript<PlayerController>().landedOnJumpPad = true;
|
||||
landed = true;
|
||||
scaleUp.Reset();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -4,9 +4,6 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SHADE_Scripting.UI
|
||||
{
|
||||
|
||||
public enum EASING_METHOD
|
||||
{
|
||||
EASE_IN_SINE,
|
||||
|
@ -16,8 +13,8 @@ namespace SHADE_Scripting.UI
|
|||
EASE_INOUT_BOUNCE
|
||||
}
|
||||
|
||||
public static class EasingHelper
|
||||
{
|
||||
public static class EasingHelper
|
||||
{
|
||||
|
||||
public static float EaseHelp(float value, EASING_METHOD method)
|
||||
{
|
||||
|
@ -26,15 +23,18 @@ namespace SHADE_Scripting.UI
|
|||
case EASING_METHOD.EASE_IN_SINE:
|
||||
{
|
||||
return EaseInSine(value);
|
||||
}break;
|
||||
}
|
||||
break;
|
||||
case EASING_METHOD.EASE_OUT_SINE:
|
||||
{
|
||||
return EaseOutSine(value);
|
||||
}break;
|
||||
}
|
||||
break;
|
||||
case EASING_METHOD.EASE_OUT_BOUNCE:
|
||||
{
|
||||
return EaseOutBounce(value);
|
||||
}break;
|
||||
}
|
||||
break;
|
||||
case EASING_METHOD.EASE_IN_BOUNCE:
|
||||
{
|
||||
return EaseInBounce(value);
|
||||
|
@ -53,13 +53,13 @@ namespace SHADE_Scripting.UI
|
|||
private static float EaseInSine(float value)
|
||||
{
|
||||
|
||||
return (float)(1.0f - Math.Cos((value * Math.PI / 2.0f) ));
|
||||
return (float)(1.0f - Math.Cos((value * Math.PI / 2.0f)));
|
||||
|
||||
}
|
||||
|
||||
private static float EaseOutSine(float value)
|
||||
{
|
||||
return (float)(Math.Sin(value * Math.PI / 2.0f) );
|
||||
return (float)(Math.Sin(value * Math.PI / 2.0f));
|
||||
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,8 @@ namespace SHADE_Scripting.UI
|
|||
if (value < 1.0f / d1)
|
||||
{
|
||||
return n1 * value * value;
|
||||
} else if (value < 2.0f / d1)
|
||||
}
|
||||
else if (value < 2.0f / d1)
|
||||
{
|
||||
return n1 * (value -= 2.25f / d1) * value + 0.9375f;
|
||||
}
|
||||
|
@ -91,9 +92,9 @@ namespace SHADE_Scripting.UI
|
|||
private static float EaseInOutBounce(float value)
|
||||
{
|
||||
return (value < 0.5f)
|
||||
?(1.0f - EaseOutBounce(1.0f - 2.0f * value)) / 2.0f
|
||||
? (1.0f - EaseOutBounce(1.0f - 2.0f * value)) / 2.0f
|
||||
: (1.0f + EaseOutBounce(2.0f * value - 1.0f)) / 2.0f;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,12 +4,8 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
|
||||
|
||||
namespace SHADE_Scripting.UI
|
||||
public class TweenThread
|
||||
{
|
||||
|
||||
public class TweenThread
|
||||
{
|
||||
private float timer = 0.0f;
|
||||
public float duration = 1.0f;
|
||||
public EASING_METHOD method;
|
||||
|
@ -32,7 +28,7 @@ namespace SHADE_Scripting.UI
|
|||
if (timer >= duration)
|
||||
timer = duration;
|
||||
|
||||
value = EasingHelper.EaseHelp(timer/duration, method) * (endValue - startValue) + startValue ;
|
||||
value = EasingHelper.EaseHelp(timer / duration, method) * (endValue - startValue) + startValue;
|
||||
}
|
||||
public bool IsCompleted()
|
||||
{
|
||||
|
@ -60,11 +56,11 @@ namespace SHADE_Scripting.UI
|
|||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class TweenThreadVec3
|
||||
{
|
||||
public class TweenThreadVec3
|
||||
{
|
||||
private float timer = 0.0f;
|
||||
public float duration = 1.0f;
|
||||
public EASING_METHOD method;
|
||||
|
@ -115,12 +111,12 @@ namespace SHADE_Scripting.UI
|
|||
{
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class TweenManager : Script
|
||||
{
|
||||
public class TweenManager : Script
|
||||
{
|
||||
public static TweenManager Instance { get; private set; }
|
||||
|
||||
[NonSerialized]
|
||||
|
@ -167,7 +163,6 @@ namespace SHADE_Scripting.UI
|
|||
if (Instance == null)
|
||||
return null;
|
||||
|
||||
|
||||
TweenThread thread = new TweenThread(duration, startValue, endValue, method);
|
||||
Instance.threadList.Add(thread);
|
||||
thread.Reset();
|
||||
|
@ -187,7 +182,4 @@ namespace SHADE_Scripting.UI
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue