mirror of
https://github.com/MaddyThorson/StrawberryBF.git
synced 2025-04-04 00:26:04 +08:00
62 lines
1.2 KiB
Brainfuck
62 lines
1.2 KiB
Brainfuck
namespace Strawberry.Sample
|
|
{
|
|
public class MovingJumpThru : Component, IUpdate
|
|
{
|
|
static public Entity Create(Point pos, int width, Point moveTo, float moveTime)
|
|
{
|
|
let e = new Entity(pos);
|
|
|
|
let hitbox = e.Add(new Hitbox(0, 0, width, 4));
|
|
let jumpThru = e.Add(new JumpThru(hitbox));
|
|
e.Add(new MovingJumpThru(jumpThru, moveTo, moveTime));
|
|
e.Add(new DrawHitbox(hitbox, .LightGray));
|
|
|
|
return e;
|
|
}
|
|
|
|
private JumpThru jumpThru;
|
|
private Point moveFrom;
|
|
private Point moveTo;
|
|
private float moveTime;
|
|
private float movingLerp = 0;
|
|
private bool movingPositive = true;
|
|
|
|
public this(JumpThru jumpThru, Point moveTo, float moveTime)
|
|
{
|
|
this.jumpThru = jumpThru;
|
|
this.moveTo = moveTo;
|
|
this.moveTime = moveTime;
|
|
}
|
|
|
|
protected override void Awake()
|
|
{
|
|
moveFrom = Entity.Position;
|
|
}
|
|
|
|
public void Update()
|
|
{
|
|
if (movingPositive)
|
|
{
|
|
movingLerp += Time.Delta / moveTime;
|
|
if (movingLerp >= 1)
|
|
{
|
|
movingLerp = 1;
|
|
movingPositive = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
movingLerp -= Time.Delta / moveTime;
|
|
if (movingLerp <= 0)
|
|
{
|
|
movingLerp = 0;
|
|
movingPositive = true;
|
|
}
|
|
}
|
|
|
|
let target = Vector.Lerp(moveFrom, moveTo, Ease.CubeInOut(movingLerp));
|
|
jumpThru.MoveTo(target);
|
|
}
|
|
}
|
|
}
|