Rewrite CirclePiece to be referenced to 128x128px and handle accented hits more sanely.

This commit is contained in:
smoogipooo
2017-03-24 18:37:56 +09:00
parent 47065d8031
commit 5281842965
12 changed files with 221 additions and 323 deletions

View File

@ -2,7 +2,11 @@
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using OpenTK;
using OpenTK.Graphics;
using osu.Framework.Allocation;
using osu.Framework.Graphics.Containers;
using osu.Framework.Screens.Testing;
using osu.Game.Graphics;
using osu.Game.Modes.Taiko.Objects.Drawable.Pieces;
namespace osu.Desktop.VisualTests.Tests
@ -11,53 +15,151 @@ namespace osu.Desktop.VisualTests.Tests
{
public override string Description => "Taiko hit objects";
private bool kiai;
public override void Reset()
{
base.Reset();
Add(new CentreHitCirclePiece
AddToggle("Kiai", b =>
{
kiai = !kiai;
Reset();
});
Add(new CentreHitCircle(new CirclePiece(@"centre")
{
KiaiMode = kiai
})
{
Position = new Vector2(100, 100)
});
Add(new FinisherPiece(new CentreHitCirclePiece())
Add(new CentreHitCircle(new AccentedCirclePiece(@"centre")
{
KiaiMode = kiai
})
{
Position = new Vector2(350, 100)
});
Add(new RimHitCirclePiece
Add(new RimHitCircle(new CirclePiece(@"rim")
{
KiaiMode = kiai
})
{
Position = new Vector2(100, 300)
});
Add(new FinisherPiece(new RimHitCirclePiece())
Add(new RimHitCircle(new AccentedCirclePiece(@"rim")
{
KiaiMode = kiai
})
{
Position = new Vector2(350, 300)
});
Add(new BashCirclePiece
Add(new SwellCircle(new CirclePiece(@"swell")
{
KiaiMode = kiai
})
{
Position = new Vector2(100, 500)
});
Add(new FinisherPiece(new BashCirclePiece())
Add(new SwellCircle(new AccentedCirclePiece(@"swell")
{
KiaiMode = kiai
})
{
Position = new Vector2(350, 500)
});
Add(new DrumRollCirclePiece
Add(new DrumRollCircle(new CirclePiece(string.Empty)
{
Width = 250,
KiaiMode = kiai
})
{
Position = new Vector2(575, 100)
});
Add(new FinisherPiece(new DrumRollCirclePiece()
Add(new DrumRollCircle(new AccentedCirclePiece(string.Empty)
{
Width = 250
Width = 250,
KiaiMode = kiai
})
{
Position = new Vector2(575, 300)
});
}
private class SwellCircle : BaseCircle
{
public SwellCircle(CirclePiece piece)
: base(piece)
{
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
Piece.AccentColour = colours.YellowDark;
}
}
private class DrumRollCircle : BaseCircle
{
public DrumRollCircle(CirclePiece piece)
: base(piece)
{
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
Piece.AccentColour = colours.YellowDark;
}
}
private class CentreHitCircle : BaseCircle
{
public CentreHitCircle(CirclePiece piece)
: base(piece)
{
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
Piece.AccentColour = colours.PinkDarker;
}
}
private class RimHitCircle : BaseCircle
{
public RimHitCircle(CirclePiece piece)
: base(piece)
{
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
Piece.AccentColour = colours.BlueDarker;
}
}
private abstract class BaseCircle : Container
{
protected readonly CirclePiece Piece;
protected BaseCircle(CirclePiece piece)
{
Piece = piece;
Add(Piece);
}
}
}
}