Ejemplo n.º 1
0
 public OsuPlayfield()
 {
     InternalChildren = new Drawable[]
     {
         connectionLayer = new FollowPointRenderer
         {
             RelativeSizeAxes = Axes.Both,
             Depth            = 2,
         },
         judgementLayer = new JudgementContainer <DrawableOsuJudgement>
         {
             RelativeSizeAxes = Axes.Both,
             Depth            = 1,
         },
         // Todo: This should not exist, but currently helps to reduce LOH allocations due to unbinding skin source events on judgement disposal
         // Todo: Remove when hitobjects are properly pooled
         new LocalSkinOverrideContainer(null)
         {
             RelativeSizeAxes = Axes.Both,
             Child            = HitObjectContainer,
         },
         approachCircles = new ApproachCircleProxyContainer
         {
             RelativeSizeAxes = Axes.Both,
             Depth            = -1,
         },
     };
 }
Ejemplo n.º 2
0
        public OsuPlayfield()
        {
            Anchor = Anchor.Centre;
            Origin = Anchor.Centre;

            Size = new Vector2(0.75f);

            InternalChild = new PlayfieldAdjustmentContainer
            {
                RelativeSizeAxes = Axes.Both,
                Children         = new Drawable[]
                {
                    connectionLayer = new FollowPointRenderer
                    {
                        RelativeSizeAxes = Axes.Both,
                        Depth            = 2,
                    },
                    judgementLayer = new JudgementContainer <DrawableOsuJudgement>
                    {
                        RelativeSizeAxes = Axes.Both,
                        Depth            = 1,
                    },
                    HitObjectContainer,
                    approachCircles = new ApproachCircleProxyContainer
                    {
                        RelativeSizeAxes = Axes.Both,
                        Depth            = -1,
                    },
                }
            };
        }
Ejemplo n.º 3
0
 public OsuPlayfield()
 {
     InternalChildren = new Drawable[]
     {
         connectionLayer = new FollowPointRenderer
         {
             RelativeSizeAxes = Axes.Both,
             Depth            = 2,
         },
         judgementLayer = new JudgementContainer <DrawableOsuJudgement>
         {
             RelativeSizeAxes = Axes.Both,
             Depth            = 1,
         },
         HitObjectContainer,
         approachCircles = new ApproachCircleProxyContainer
         {
             RelativeSizeAxes = Axes.Both,
             Depth            = -1,
         },
     };
 }
Ejemplo n.º 4
0
        public OsuPlayfield()
        {
            InternalChildren = new Drawable[]
            {
                followPoints = new FollowPointRenderer
                {
                    RelativeSizeAxes = Axes.Both,
                    Depth            = 2,
                },
                judgementLayer = new JudgementContainer <DrawableOsuJudgement>
                {
                    RelativeSizeAxes = Axes.Both,
                    Depth            = 1,
                },
                // Todo: This should not exist, but currently helps to reduce LOH allocations due to unbinding skin source events on judgement disposal
                // Todo: Remove when hitobjects are properly pooled
                new SkinProvidingContainer(null)
                {
                    Child = HitObjectContainer,
                },
                approachCircles = new ApproachCircleProxyContainer
                {
                    RelativeSizeAxes = Axes.Both,
                    Depth            = -1,
                },
            };

            hitPolicy = new OrderedHitPolicy(HitObjectContainer);

            var hitWindows = new OsuHitWindows();

            foreach (var result in Enum.GetValues(typeof(HitResult)).OfType <HitResult>().Where(r => r > HitResult.None && hitWindows.IsHitResultAllowed(r)))
            {
                poolDictionary.Add(result, new DrawableJudgementPool(result));
            }

            AddRangeInternal(poolDictionary.Values);
        }