public void LevelSegment_Visibility()
        {
            LevelSegment ls = new LevelSegment();

            JumpAndRun.Item.Object obstacle = new JumpAndRun.Item.Object();
            obstacle.ModelXmlPath = "data/levels/jungle/models/banana.xml";
            obstacle.Deserialize();
            JumpAndRun.Item.Object score = new JumpAndRun.Item.Object();
            score.ModelXmlPath = "data/levels/jungle/models/banana.xml";
            score.Deserialize();
            JumpAndRun.Item.Object obj = new JumpAndRun.Item.Object();
            obj.ModelXmlPath = "data/levels/jungle/models/banana.xml";
            obj.Deserialize();

            ls.AddObstacle(obstacle);
            ls.AddScore(score);
            ls.AddObject(obj);

            ls.Create(0);

            Assert.AreEqual(true, ls.Visibility(true), "Segment wurde nicht sichtbar.");
        }
Example #2
0
        /// <summary>
        /// Eventmethode wenn ein Segment betreten wird.
        /// </summary>
        /// <param name="segment">Sgment welches betreten wird</param>
        public void SegmentEntered(LevelSegment segment)
        {
            // Endsegment
            if (segment.Equals(this.SegmentsStartEnd[1]))
            {
                if (LevelFinishedEvent != null)
                {
                    LevelFinishedEvent();
                }
            }

            // segment ausblenden, sieht man sowieso nicht mehr
            segment.Visibility(true);

            // alle segmente der nächsten 100m einblenden
            float currentPosition = segment.StartPosition + segment.Length;
            List<LevelSegment> list = RandomlyChosenSegments.FindAll(e => e.StartPosition >= currentPosition && e.StartPosition <= currentPosition + VisibilityRange);
            foreach (LevelSegment s in list)
            {
                s.Visibility(true);
            }

            log.Debug("Segment Entered at Position " + segment.StartPosition + ": " + segment.FilePath);
        }