Knot3.Game.Screens.ChallengeStartScreen.ChallengeStartScreen C# (CSharp) Méthode

ChallengeStartScreen() public méthode

Erstellt eine neue Instanz eines ChallengeStartScreen-Objekts und initialisiert diese mit einem Knot3Game-Objekt.
public ChallengeStartScreen ( GameCore game ) : System
game Knot3.Framework.Core.GameCore
Résultat System
        public ChallengeStartScreen(GameCore game)
            : base(game)
        {
            savegameMenu = new Menu (this, DisplayLayer.ScreenUI + DisplayLayer.Menu);
            savegameMenu.Bounds.Position = ScreenContentBounds.Position;
            savegameMenu.Bounds.Size = new ScreenPoint (this, 0.300f, ScreenContentBounds.Size.Relative.Y);
            savegameMenu.Bounds.Padding = new ScreenPoint (this, 0.010f, 0.010f);
            savegameMenu.ItemAlignX = HorizontalAlignment.Left;
            savegameMenu.ItemAlignY = VerticalAlignment.Center;
            savegameMenu.ItemBackgroundColor = Design.ComboBoxItemBackgroundColorFunc;
            savegameMenu.ItemForegroundColor = Design.ComboBoxItemForegroundColorFunc;
            savegameMenu.RelativeItemHeight = Design.DataItemHeight;

            lines.AddPoints (.000f, .050f, .030f, .970f, .620f, .895f, .740f, .970f, .760f, .895f, .880f, .970f, .970f, .050f, 1.000f);

            title = new TextItem (screen: this, drawOrder: DisplayLayer.ScreenUI + DisplayLayer.MenuItem, text: "Start Challenge");
            title.Bounds.Position = ScreenTitleBounds.Position;
            title.Bounds.Size = ScreenTitleBounds.Size;
            title.ForegroundColorFunc = (s) => Color.White;

            infoTitle = new TextItem (screen: this, drawOrder: DisplayLayer.ScreenUI + DisplayLayer.MenuItem, text: "Challenge Info:");
            infoTitle.Bounds.Position = new ScreenPoint (this, 0.45f, 0.62f);
            infoTitle.Bounds.Size = new ScreenPoint (this, 0.900f, 0.050f);
            infoTitle.ForegroundColorFunc = (s) => Color.White;

            challengeInfo = new Menu (this, DisplayLayer.ScreenUI + DisplayLayer.Menu);
            challengeInfo.Bounds.Position = new ScreenPoint (this, 0.47f, 0.70f);
            challengeInfo.Bounds.Size = new ScreenPoint (this, 0.300f, 0.500f);
            challengeInfo.Bounds.Padding = new ScreenPoint (this, 0.010f, 0.010f);
            challengeInfo.ItemAlignX = HorizontalAlignment.Left;
            challengeInfo.ItemAlignY = VerticalAlignment.Center;

            // Erstelle einen Parser für das Dateiformat
            ChallengeFileIO fileFormat = new ChallengeFileIO ();
            // Erstelle einen Spielstand-Loader
            loader = new SavegameLoader<Challenge, ChallengeMetaData> (fileFormat, "index-challenges");

            // Preview
            Bounds previewBounds = new Bounds (this, 0.45f, 0.1f, 0.48f, 0.5f);
            previewWorld = new World (
                screen: this,
                drawOrder: DisplayLayer.ScreenUI + DisplayLayer.GameWorld,
                bounds: previewBounds
            );
            previewRenderer = new KnotRenderer (screen: this, position: Vector3.Zero);
            previewWorld.Add (previewRenderer);
            previewBorder = new Border (
                screen: this,
                drawOrder: DisplayLayer.GameWorld,
                bounds: previewBounds,
                lineWidth: 2,
                padding: 0
            );
            previewInput = new KnotInputHandler (screen: this, world: previewWorld);
            previewMouseHandler = new ModelMouseHandler (screen: this, world: previewWorld);

            backButton = new Button (
                screen: this,
                drawOrder: DisplayLayer.ScreenUI + DisplayLayer.MenuItem,
                name: "Back",
                onClick: (time) => NextScreen = Game.Screens.Where ((s) => !(s is ChallengeStartScreen)).ElementAt (0)
            );
            backButton.AddKey (Keys.Escape);

            backButton.SetCoordinates (left: 0.770f, top: 0.910f, right: 0.870f, bottom: 0.960f);
            backButton.AlignX = HorizontalAlignment.Center;
            Action<GameTime> loadSelectedChallenge = (time) => {
                NextScreen = new ChallengeModeScreen (
                    game: Game,
                    challenge: loader.FileFormat.Load (previewChallenge.MetaData.Filename)
                );
            };
            startButton = new Button (
                screen: this,
                drawOrder: DisplayLayer.ScreenUI + DisplayLayer.MenuItem,
                name: "Start",
                onClick: loadSelectedChallenge
            );
            startButton.IsVisible = false;
            startButton.AddKey (Keys.Enter);
            startButton.SetCoordinates (left: 0.630f, top: 0.910f, right: 0.730f, bottom: 0.960f);

            startButton.AlignX = HorizontalAlignment.Center;
        }