
und weiter gehts!
Soo….nachdem nun sämtliche Prüfungen geschrieben sind, kann ich mich nun endlich mal wieder dem XNA-D&D-Game widmen….. gedacht-getan: Rechner angemacht- C# gestartet…..und schon der erste herbe Rückschlag: ich hatte vor einigen Wochen meinen PC neu aufgesetzt… dummerweise habe ich eine ältere Version meines Quelltextes gesichert….somit muss(te) ich wieder einiges neu machen…. und Probleme wie das korrekte Skalieren der Felder, bei denen ich froh war sie nicht mehr als Problem zu haben….
Jedoch kamen durch die zwangs- Widerholung auch einige Fehler zum Vorschein. So hatte ich beispielsweise nicht bedacht, dass, wenn man auf der karte heranzoomt, die Felder ja immer ab der oberen rechten ecke gezeichnet werden. DH man zoomt zwar an die richtige stelle der Karte, jedoch nicht an die richtige Stelle der Felder.
Als Lösung zu diesem Problem hatte ich mir überlegt, einfach im „Übersichtsmodus“ die Felder in die entgegengesetzte Richtung zu verschieben. Jedoch erscheint mir das auch etwas buggy zu sein…weshalb ich nun eine andere Herangehensweise ausprobieren möchte.
Meine bisherige Idee bestand darauf, um den ZOOM- effekt zu suggerieren, einfach alle elemente des Bildschrims entsprechend zu vergrößern- d.h. die Felder in ihrer Länge/Breite und ihrer Position entsprechend zu verändern.
Nun will ich jedoch ausprobieren, ob es nicht einfacher ist, den gesamten ZOOM effekt auf das grafische zu beschränken.
die Draw-Methode des SpriteBatch bietet in einer Überladung einen Parameter für die Skalierung an.
public void Draw (
Texture2D texture,
Vector2 position,
Nullable<Rectangle> sourceRectangle,
Color color,
float rotation,
Vector2 origin,
Vector2 scale,
SpriteEffects effects,
float layerDepth
)
Es geht um die beiden Vectoren origin und scale. Hierbei gibt Origin den Punkt innerhalb des Sprites an, von dem ausgehend das Sprite skaliert werden soll. (der „Pivot-Point“ für 3D- Grafiker ). der Scale-Vector enthält die Faktoren um den das Sprite Skaliert werden soll.
Der Nachteil an dieser Herangehensweise ist jedoch, dass hierbei weder die Feld- Attribute Länge/Breite, noch die Position der Felder verändert wird….ich befürchte also, dass das immernoch nicht des Rätsels Lösung sein wird, aber vielleicht hilft mir das dann schonmal ein bischen weitet…. „Vom Hirn in die Tastatur“ ist ja bekanntlich das beste Software- Entwicklungsmodell…