Erster Schritt

Eigentlich müsste ich bei der Entwicklung meines Spiels erstmal mit einem Konzept anfangen, was es denn genau werden soll. Da mir aber schon grob ein Konzept vorschwebt, widme ich mich erstmal einer Sache, die mich erstmal ein wenig wieder reinbringt…

Eines steht jedoch jetzt schon fest: Das Spiel wird zu 100% 2D sein. Da das XNA-Team so nett war, und das SpriteBatch Object ein wenig frisiert hat (man kann jetzt eine transformMatrix übergeben), habe ich jetzt relativ einfach eine scrollende 2D Landschaft erstellt. Die Zauberformel lautet dabei folgendermaßen:

private Matrix MapTransformation {
    get {
        return Matrix.CreateTranslation(new Vector3(-position.X, -position.Y, 0)) * Matrix.CreateRotationZ(rotation) * Matrix.CreateScale(new Vector3(scale, scale, 0)) * Matrix.CreateTranslation(new Vector3(GraphicsDevice.Viewport.Width * 0.5f, GraphicsDevice.Viewport.Height * 0.5f, 0));
    }
}

Die einzelnen Variablen müssen natürlich noch vorbesetzt werden. Zum Testen einfach folgende Werte nehmen:

float rotation = 0f;
float scale = 1f;
Vector2 position = new Vector2(0, 0);

Wenn man die Transformations Matrix jetzt an das SpriteBatch in der Begin Routine übergibt, kann man durch Änderung der Werte leicht Scrollen, Rotation und Zoom hinbekommen.

Aber ich schweife ab. Was ich eigentlich mitteilen wollte, ist, dass man für 2D Spiele immer Animationen braucht. Daraus resultiert, das ich für eine Animation mehrere Bilder benötige, welche performanter Weise in einer Textur gespeichert sein sollten. Es sollten auf eine Textur soviele einzelne Sprite wie nur möglich, damit das SpriteBatch nicht bei jedem Sprite welches es zeichnet die Textur wechseln muss. Dafür muss die Textur also in Bereiche unterteilt werden. Das ganze nennt man dann SpriteSheet. XNA bietet von Haus aus solch eine Funktion. Diese finde ich aber wegen mangelnder Kontrolle nicht ausreichend für mein Spiel. Deshalb werde ich ein kleines Tool schreiben, mit welchem die Texturen, SpriteSheets und Animationen für das Spiel erstellt und verwaltet werden können. Anschließend baue ich die entsprechenden Klassen in XNA auf, um diese Dinge kompfortabel zu nutzen.

Eigentlich ist es die falsche Reihenfolge, mit der ich mein Spiel beginne, aber das Tool zu programmieren, ist erstmal motivierender und einfacher als direkt in XNA einzusteigen.

Melde mich dann, wenn das Tool funktionsfähig ist.

This entry was posted in Indie Game. Bookmark the permalink.