mirror of
https://github.com/MaddyThorson/StrawberryBF.git
synced 2025-02-18 11:38:28 +08:00
JumpThru movements
This commit is contained in:
parent
bde9a51f9e
commit
adad88ee83
@ -4,12 +4,14 @@ namespace Strawberry
|
|||||||
{
|
{
|
||||||
public struct Point
|
public struct Point
|
||||||
{
|
{
|
||||||
static public readonly Point Right = Point(1, 0);
|
static public readonly Point Right = .(1, 0);
|
||||||
static public readonly Point Left = Point(-1, 0);
|
static public readonly Point Left = .(-1, 0);
|
||||||
static public readonly Point Up = Point(0, -1);
|
static public readonly Point Up = .(0, -1);
|
||||||
static public readonly Point Down = Point(0, 1);
|
static public readonly Point Down = .(0, 1);
|
||||||
static public readonly Point Zero = Point(0, 0);
|
static public readonly Point UnitX = .(1, 0);
|
||||||
static public readonly Point One = Point(1, 1);
|
static public readonly Point UnitY = .(0, 1);
|
||||||
|
static public readonly Point Zero = .(0, 0);
|
||||||
|
static public readonly Point One = .(1, 1);
|
||||||
|
|
||||||
public int X;
|
public int X;
|
||||||
public int Y;
|
public int Y;
|
@ -4,12 +4,14 @@ namespace Strawberry
|
|||||||
{
|
{
|
||||||
public struct Vector
|
public struct Vector
|
||||||
{
|
{
|
||||||
static public readonly Vector Right = Vector(1, 0);
|
static public readonly Vector Right = .(1, 0);
|
||||||
static public readonly Vector Left = Vector(-1, 0);
|
static public readonly Vector Left = .(-1, 0);
|
||||||
static public readonly Vector Up = Vector(0, -1);
|
static public readonly Vector Up = .(0, -1);
|
||||||
static public readonly Vector Down = Vector(0, 1);
|
static public readonly Vector Down = .(0, 1);
|
||||||
static public readonly Vector Zero = Vector(0, 0);
|
static public readonly Vector UnitX = .(1, 0);
|
||||||
static public readonly Vector One = Vector(1, 1);
|
static public readonly Vector UnitY = .(0, 1);
|
||||||
|
static public readonly Vector Zero = .(0, 0);
|
||||||
|
static public readonly Vector One = .(1, 1);
|
||||||
|
|
||||||
public float X;
|
public float X;
|
||||||
public float Y;
|
public float Y;
|
@ -9,18 +9,53 @@ namespace Strawberry
|
|||||||
Hitbox = Rect(0, 0, width, 6);
|
Hitbox = Rect(0, 0, width, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void Update()
|
||||||
|
{
|
||||||
|
base.Update();
|
||||||
|
|
||||||
|
MoveY(-10 * Time.Delta);
|
||||||
|
}
|
||||||
|
|
||||||
public override void MoveExactX(int amount)
|
public override void MoveExactX(int amount)
|
||||||
{
|
{
|
||||||
let riders = GetRiders(scope List<Actor>);
|
if (Collidable)
|
||||||
|
{
|
||||||
X += amount;
|
let riders = GetRiders(scope List<Actor>);
|
||||||
for (var r in riders)
|
|
||||||
r.MoveExactX(amount);
|
X += amount;
|
||||||
|
for (var r in riders)
|
||||||
|
r.MoveExactX(amount);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
X += amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void MoveExactY(int amount)
|
public override void MoveExactY(int amount)
|
||||||
{
|
{
|
||||||
let riders = GetRiders(scope List<Actor>);
|
if (Collidable)
|
||||||
|
{
|
||||||
|
let riders = GetRiders(scope List<Actor>);
|
||||||
|
|
||||||
|
if (amount < 0)
|
||||||
|
{
|
||||||
|
for (var a in Scene.All<Actor>(scope List<Actor>))
|
||||||
|
if (riders.Contains(a) || CheckOutside(a, Point.UnitY * amount))
|
||||||
|
a.MoveExactY((Top + amount) - a.Bottom);
|
||||||
|
Y += amount;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Collidable = false;
|
||||||
|
|
||||||
|
for (var a in riders)
|
||||||
|
a.MoveExactY(amount);
|
||||||
|
|
||||||
|
Collidable = true;
|
||||||
|
Y += amount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Y += amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override List<Actor> GetRiders(List<Actor> into)
|
public override List<Actor> GetRiders(List<Actor> into)
|
||||||
|
Loading…
Reference in New Issue
Block a user