base for jumppad

This commit is contained in:
Glence 2023-03-08 18:49:36 +08:00
parent 87f7b42ec3
commit 10555f646c
3 changed files with 292 additions and 251 deletions

View File

@ -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();
}
}
}

View File

@ -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,
@ -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);
@ -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;
}
@ -96,4 +97,4 @@ namespace SHADE_Scripting.UI
}
}
}

View File

@ -4,10 +4,6 @@ using System;
using System.Collections.Generic;
using System.Threading;
namespace SHADE_Scripting.UI
{
public class TweenThread
{
private float timer = 0.0f;
@ -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
}
}
}