示例#1
0
        private Color4 colourForRepresentation(FruitVisualRepresentation representation)
        {
            switch (representation)
            {
            default:
            case FruitVisualRepresentation.Pear:
                return(new Color4(17, 136, 170, 255));

            case FruitVisualRepresentation.Grape:
                return(new Color4(204, 102, 0, 255));

            case FruitVisualRepresentation.Raspberry:
                return(new Color4(121, 9, 13, 255));

            case FruitVisualRepresentation.Pineapple:
                return(new Color4(102, 136, 0, 255));

            case FruitVisualRepresentation.Banana:
                switch (RNG.Next(0, 3))
                {
                default:
                    return(new Color4(255, 240, 0, 255));

                case 1:
                    return(new Color4(255, 192, 0, 255));

                case 2:
                    return(new Color4(214, 221, 28, 255));
                }
            }
        }
示例#2
0
        private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation representation)
        {
            const float large_pulp_3           = 8f * radius_adjust;
            const float distance_from_centre_3 = 0.15f;

            const float large_pulp_4           = large_pulp_3 * 0.925f;
            const float distance_from_centre_4 = distance_from_centre_3 / 0.925f;

            const float small_pulp = large_pulp_3 / 2;
示例#3
0
        private Drawable createDrawable(FruitVisualRepresentation rep)
        {
            Fruit fruit = new TestCatchFruit(rep)
            {
                Scale = 1.5f
            };

            return(new DrawableFruit(fruit)
            {
                Anchor = Anchor.Centre,
                RelativePositionAxes = Axes.None,
                Position = Vector2.Zero,
                Alpha = 1,
                LifetimeStart = double.NegativeInfinity,
                LifetimeEnd = double.PositiveInfinity,
            });
        }
示例#4
0
        private Drawable createDrawable(FruitVisualRepresentation rep, bool hyperdash = false)
        {
            Fruit fruit = new TestCatchFruit(rep)
            {
                Scale           = 1.5f,
                HyperDashTarget = hyperdash ? new Banana() : null
            };

            return(new DrawableFruit(fruit)
            {
                Anchor = Anchor.Centre,
                RelativePositionAxes = Axes.None,
                Position = Vector2.Zero,
                Alpha = 1,
                LifetimeStart = double.NegativeInfinity,
                LifetimeEnd = double.PositiveInfinity,
            });
        }
示例#5
0
        private void setTexture(FruitVisualRepresentation visualRepresentation)
        {
            switch (visualRepresentation)
            {
            case FruitVisualRepresentation.Pear:
                SetTexture(Skin.GetTexture("fruit-pear"), Skin.GetTexture("fruit-pear-overlay"));
                break;

            case FruitVisualRepresentation.Grape:
                SetTexture(Skin.GetTexture("fruit-grapes"), Skin.GetTexture("fruit-grapes-overlay"));
                break;

            case FruitVisualRepresentation.Pineapple:
                SetTexture(Skin.GetTexture("fruit-apple"), Skin.GetTexture("fruit-apple-overlay"));
                break;

            case FruitVisualRepresentation.Raspberry:
                SetTexture(Skin.GetTexture("fruit-orange"), Skin.GetTexture("fruit-orange-overlay"));
                break;
            }
        }
示例#6
0
        private Drawable getFruitFor(FruitVisualRepresentation representation)
        {
            switch (representation)
            {
            case FruitVisualRepresentation.Pear:
                return(new PearPiece());

            case FruitVisualRepresentation.Grape:
                return(new GrapePiece());

            case FruitVisualRepresentation.Pineapple:
                return(new PineapplePiece());

            case FruitVisualRepresentation.Banana:
                return(new BananaPiece());

            case FruitVisualRepresentation.Raspberry:
                return(new RaspberryPiece());
            }

            return(Empty());
        }
示例#7
0
        private CatchSkinComponents getComponent(FruitVisualRepresentation hitObjectVisualRepresentation)
        {
            switch (hitObjectVisualRepresentation)
            {
            case FruitVisualRepresentation.Pear:
                return(CatchSkinComponents.FruitPear);

            case FruitVisualRepresentation.Grape:
                return(CatchSkinComponents.FruitGrapes);

            case FruitVisualRepresentation.Pineapple:
                return(CatchSkinComponents.FruitApple);

            case FruitVisualRepresentation.Raspberry:
                return(CatchSkinComponents.FruitOrange);

            case FruitVisualRepresentation.Banana:
                return(CatchSkinComponents.FruitBananas);

            default:
                throw new ArgumentOutOfRangeException(nameof(hitObjectVisualRepresentation), hitObjectVisualRepresentation, null);
            }
        }
示例#8
0
        private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation representation)
        {
            const float large_pulp_3           = 8f * radius_adjust;
            const float distance_from_centre_3 = 0.15f;

            const float large_pulp_4           = large_pulp_3 * 0.925f;
            const float distance_from_centre_4 = distance_from_centre_3 / 0.925f;

            const float small_pulp = large_pulp_3 / 2;

            Vector2 positionAt(float angle, float distance) => new Vector2(
                distance * MathF.Sin(angle * MathF.PI / 180),
                distance * MathF.Cos(angle * MathF.PI / 180));

            switch (representation)
            {
            default:
                return(new Container());

            case FruitVisualRepresentation.Raspberry:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(small_pulp),
                            Y = -0.34f,
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(0, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(90, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(180, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            Size = new Vector2(large_pulp_4),
                            AccentColour = AccentColour.Value,
                            Position = positionAt(270, distance_from_centre_4),
                        },
                    }
                });

            case FruitVisualRepresentation.Pineapple:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(small_pulp),
                            Y = -0.3f,
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(45, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(135, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(225, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            Size = new Vector2(large_pulp_4),
                            AccentColour = AccentColour.Value,
                            Position = positionAt(315, distance_from_centre_4),
                        },
                    }
                });

            case FruitVisualRepresentation.Pear:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(small_pulp),
                            Y = -0.33f,
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_3),
                            Position = positionAt(60, distance_from_centre_3),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_3),
                            Position = positionAt(180, distance_from_centre_3),
                        },
                        new Pulp
                        {
                            Size = new Vector2(large_pulp_3),
                            AccentColour = AccentColour.Value,
                            Position = positionAt(300, distance_from_centre_3),
                        },
                    }
                });

            case FruitVisualRepresentation.Grape:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(small_pulp),
                            Y = -0.25f,
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_3),
                            Position = positionAt(0, distance_from_centre_3),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_3),
                            Position = positionAt(120, distance_from_centre_3),
                        },
                        new Pulp
                        {
                            Size = new Vector2(large_pulp_3),
                            AccentColour = AccentColour.Value,
                            Position = positionAt(240, distance_from_centre_3),
                        },
                    }
                });

            case FruitVisualRepresentation.Banana:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(small_pulp),
                            Y = -0.3f
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour.Value,
                            Size = new Vector2(large_pulp_4 * 0.8f, large_pulp_4 * 2.5f),
                            Y = 0.05f,
                        },
                    }
                });
            }
        }
示例#9
0
        private Framework.Graphics.Drawable createPulp(FruitVisualRepresentation representation)
        {
            const float large_pulp_3           = 13f;
            const float distance_from_centre_3 = 0.23f;

            const float large_pulp_4           = large_pulp_3 * 0.925f;
            const float distance_from_centre_4 = distance_from_centre_3 / 0.925f;

            const float small_pulp = large_pulp_3 / 2;

            Vector2 positionAt(float angle, float distance) => new Vector2(
                distance * (float)Math.Sin(angle * Math.PI / 180),
                distance * (float)Math.Cos(angle * Math.PI / 180));

            switch (representation)
            {
            default:
                return(new Container());

            case FruitVisualRepresentation.Raspberry:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            Anchor = Anchor.TopCentre,
                            Origin = Anchor.BottomCentre,
                            AccentColour = AccentColour,
                            Size = new Vector2(small_pulp),
                            Y = 0.05f,
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(0, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(90, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(180, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            Size = new Vector2(large_pulp_4),
                            AccentColour = AccentColour,
                            Position = positionAt(270, distance_from_centre_4),
                        },
                    }
                });

            case FruitVisualRepresentation.Pineapple:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            Anchor = Anchor.TopCentre,
                            Origin = Anchor.BottomCentre,
                            AccentColour = AccentColour,
                            Size = new Vector2(small_pulp),
                            Y = 0.1f,
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(45, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(135, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_4),
                            Position = positionAt(225, distance_from_centre_4),
                        },
                        new Pulp
                        {
                            Size = new Vector2(large_pulp_4),
                            AccentColour = AccentColour,
                            Position = positionAt(315, distance_from_centre_4),
                        },
                    }
                });

            case FruitVisualRepresentation.Pear:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            Anchor = Anchor.TopCentre,
                            Origin = Anchor.TopCentre,
                            AccentColour = AccentColour,
                            Size = new Vector2(small_pulp),
                            Y = -0.1f,
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_3),
                            Position = positionAt(60, distance_from_centre_3),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_3),
                            Position = positionAt(180, distance_from_centre_3),
                        },
                        new Pulp
                        {
                            Size = new Vector2(large_pulp_3),
                            AccentColour = AccentColour,
                            Position = positionAt(300, distance_from_centre_3),
                        },
                    }
                });

            case FruitVisualRepresentation.Grape:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            Anchor = Anchor.TopCentre,
                            Origin = Anchor.TopCentre,
                            AccentColour = AccentColour,
                            Size = new Vector2(small_pulp),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_3),
                            Position = positionAt(0, distance_from_centre_3),
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_3),
                            Position = positionAt(120, distance_from_centre_3),
                        },
                        new Pulp
                        {
                            Size = new Vector2(large_pulp_3),
                            AccentColour = AccentColour,
                            Position = positionAt(240, distance_from_centre_3),
                        },
                    }
                });

            case FruitVisualRepresentation.Banana:
                return(new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children = new Framework.Graphics.Drawable[]
                    {
                        new Pulp
                        {
                            Anchor = Anchor.TopCentre,
                            Origin = Anchor.TopCentre,
                            AccentColour = AccentColour,
                            Size = new Vector2(small_pulp),
                            Y = -0.15f
                        },
                        new Pulp
                        {
                            AccentColour = AccentColour,
                            Size = new Vector2(large_pulp_4 * 1.2f, large_pulp_4 * 3),
                        },
                    }
                });
            }
        }
示例#10
0
 public TestCatchFruit(FruitVisualRepresentation rep)
 {
     VisualRepresentation = rep;
     StartTime            = 1000000000000;
 }
示例#11
0
 public TestCatchFruit(FruitVisualRepresentation rep)
 {
     VisualRepresentation = rep;
 }
示例#12
0
 private Drawable createDrawableFruit(FruitVisualRepresentation rep, bool hyperdash = false) =>
 setProperties(new DrawableFruit(new TestCatchFruit(rep)), hyperdash);