예제 #1
0
파일: tauPlayfield.cs 프로젝트: Niroe/tau
        private void onNewResult(DrawableHitObject judgedObject, JudgementResult result)
        {
            if (!judgedObject.DisplayResult || !DisplayJudgements.Value)
            {
                return;
            }

            var tauObj = (DrawabletauHitObject)judgedObject;

            var b = tauObj.HitObject.PositionToEnd.GetDegreesFromPosition(tauObj.Box.AnchorPosition) * 4;
            var a = b *= (float)(Math.PI / 180);

            DrawableTauJudgement explosion = new DrawableTauJudgement(result, tauObj)
            {
                Origin   = Anchor.Centre,
                Anchor   = Anchor.Centre,
                Position = new Vector2(-(285 * (float)Math.Cos(a)), -(285 * (float)Math.Sin(a))),
                Rotation = tauObj.Box.Rotation + 90,
            };

            judgementLayer.Add(explosion);

            if (judgedObject.HitObject.Kiai && result.Type != HitResult.Miss)
            {
                kiaiExplosionContainer.Add(new KiaiHitExplosion(judgedObject)
                {
                    Position = new Vector2(-(215 * (float)Math.Cos(a)), -(215 * (float)Math.Sin(a))),
                    Rotation = tauObj.Box.Rotation,
                    Anchor   = Anchor.Centre,
                    Origin   = Anchor.Centre
                });
            }
        }
예제 #2
0
파일: TauPlayfield.cs 프로젝트: nyalter/tau
        private void onNewResult(DrawableHitObject judgedObject, JudgementResult result)
        {
            if (!judgedObject.DisplayResult || !DisplayJudgements.Value)
            {
                return;
            }

            DrawableTauJudgement explosion = new DrawableTauJudgement(result, judgedObject)
            {
                Origin = Anchor.Centre,
                Anchor = Anchor.Centre,
            };

            switch (judgedObject)
            {
            case DrawableBeat beat:
                var angle = beat.HitObject.Angle;
                explosion.Position = Extensions.GetCircularPosition(.6f, angle);
                explosion.Rotation = angle;

                if (judgedObject.HitObject.Kiai && result.Type != HitResult.Miss)
                {
                    kiaiExplosionContainer.Add(new KiaiHitExplosion(judgedObject.AccentColour.Value)
                    {
                        Position = Extensions.GetCircularPosition(.5f, angle),
                        Angle    = angle,
                        Anchor   = Anchor.Centre,
                        Origin   = Anchor.Centre
                    });
                }

                break;

            case DrawableHardBeat _:
                explosion.Position = Extensions.GetCircularPosition(.6f, 0);

                if (judgedObject.HitObject.Kiai && result.Type != HitResult.Miss)
                {
                    kiaiExplosionContainer.Add(new KiaiHitExplosion(judgedObject.AccentColour.Value, true)
                    {
                        Anchor = Anchor.Centre,
                        Origin = Anchor.Centre
                    });
                }

                break;
            }

            judgementLayer.Add(explosion);
        }
예제 #3
0
 private void onJudgmentLoaded(DrawableTauJudgement judgement)
 {
     judgementLayer.Add(judgement.ProxiedAboveHitObjectsContent);
 }