Projektdateien hinzufügen.
This commit is contained in:
90
HillLikeGame.cs
Normal file
90
HillLikeGame.cs
Normal file
@@ -0,0 +1,90 @@
|
||||
using osu.Framework;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Shapes;
|
||||
using osu.Framework.Input.Events;
|
||||
using osu.Framework.Platform;
|
||||
using osuTK;
|
||||
using osuTK.Graphics;
|
||||
|
||||
namespace HillLike;
|
||||
|
||||
public class HillLikeGame : Game
|
||||
{
|
||||
private World _world = null!;
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void Load(GameHost host)
|
||||
{
|
||||
Add(new Container
|
||||
{
|
||||
RelativeSizeAxes = Axes.Both,
|
||||
Children =
|
||||
[
|
||||
_world = new World(),
|
||||
new Hud(_world)
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
protected override void Update()
|
||||
{
|
||||
base.Update();
|
||||
_world.Step((float)(Clock.ElapsedFrameTime / 1000.0));
|
||||
}
|
||||
|
||||
protected override bool OnKeyDown(KeyDownEvent e)
|
||||
{
|
||||
_world.HandleKeyDown(e);
|
||||
return base.OnKeyDown(e);
|
||||
}
|
||||
|
||||
protected override void OnKeyUp(KeyUpEvent e)
|
||||
{
|
||||
_world.HandleKeyUp(e);
|
||||
base.OnKeyUp(e);
|
||||
}
|
||||
}
|
||||
|
||||
public class Hud : CompositeDrawable
|
||||
{
|
||||
private readonly Box _speedBar;
|
||||
private readonly Box _speedBarBg;
|
||||
private readonly World _world;
|
||||
|
||||
public Hud(World world)
|
||||
{
|
||||
this._world = world;
|
||||
|
||||
RelativeSizeAxes = Axes.Both;
|
||||
|
||||
InternalChildren =
|
||||
[
|
||||
_speedBarBg = new Box
|
||||
{
|
||||
Anchor = Anchor.TopLeft,
|
||||
Origin = Anchor.TopLeft,
|
||||
Position = new Vector2(20, 42),
|
||||
Size = new Vector2(260, 10),
|
||||
Colour = new Color4(30, 30, 30, 220)
|
||||
},
|
||||
_speedBar = new Box
|
||||
{
|
||||
Anchor = Anchor.TopLeft,
|
||||
Origin = Anchor.TopLeft,
|
||||
Position = new Vector2(20, 42),
|
||||
Size = new Vector2(0, 10),
|
||||
Colour = new Color4(120, 180, 255, 255)
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
protected override void Update()
|
||||
{
|
||||
base.Update();
|
||||
|
||||
var speed = _world.Car.Velocity.X;
|
||||
_speedBar.Width = 260 * Math.Clamp(Math.Abs(speed) / 25f, 0, 1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user