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."); }
/// <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); }