Add rim hits.

This commit is contained in:
smoogipooo
2017-03-28 11:18:12 +09:00
parent 1faff828d1
commit b7d9de57a2
6 changed files with 138 additions and 53 deletions

View File

@ -0,0 +1,20 @@
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System.Collections.Generic;
using OpenTK.Input;
using osu.Game.Modes.Taiko.Objects.Drawable.Pieces;
namespace osu.Game.Modes.Taiko.Objects.Drawable
{
public class DrawableRimHit : DrawableHit
{
protected override List<Key> HitKeys { get; } = new List<Key>(new[] { Key.D, Key.K });
public DrawableRimHit(Hit hit)
: base(hit)
{
Add(new RimHitCirclePiece(new CirclePiece()));
}
}
}

View File

@ -0,0 +1,20 @@
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
using System.Collections.Generic;
using OpenTK.Input;
using osu.Game.Modes.Taiko.Objects.Drawable.Pieces;
namespace osu.Game.Modes.Taiko.Objects.Drawable
{
public class DrawableStrongRimHit : DrawableStrongHit
{
protected override List<Key> HitKeys { get; } = new List<Key>(new[] { Key.D, Key.K });
public DrawableStrongRimHit(Hit hit)
: base(hit)
{
Add(new RimHitCirclePiece(new StrongCirclePiece()));
}
}
}

View File

@ -0,0 +1,48 @@
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
// 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;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Sprites;
using osu.Game.Graphics;
namespace osu.Game.Modes.Taiko.Objects.Drawable.Pieces
{
public class RimHitCirclePiece : Container
{
private readonly CirclePiece circle;
public RimHitCirclePiece(CirclePiece piece)
{
Add(circle = piece);
circle.Add(new CircularContainer
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
Size = new Vector2(CirclePiece.SYMBOL_SIZE),
BorderThickness = CirclePiece.SYMBOL_BORDER,
BorderColour = Color4.White,
Masking = true,
Children = new[]
{
new Box
{
RelativeSizeAxes = Axes.Both,
Alpha = 0,
AlwaysPresent = true
}
}
});
}
[BackgroundDependencyLoader]
private void load(OsuColour colours)
{
circle.AccentColour = colours.BlueDarker;
}
}
}