Problem bei der Anzeige des Spielfensters mit XNA
-
Dienstag, 6. März 2012 15:27
Hallo zusammen,
seit meiner letzten Änderung in meinem Code wird kein Fenster mehr angezeigt.
Ich habe eine Klasse geschrieben, die eine Funktion namens "Update" enthält. Die wird später im eigentlichen Spiel von der Update-Funktion aufgerufen.
Die Funktion sieht folgendermaßen aus:
public void Update(float elapsed) { Position += Richtungvek * elapsed; for (int x = 0; x < Map.Mapgröße.X; x++) { for (int y = 0; x < Map.Mapgröße.Y; y++) { if (new Rectangle((int)Position.X, (int)Position.Y, Größe, Größe).Intersects(new Rectangle(Map.Tilegröße * x, Map.Tilegröße * y, Map.Tilegröße, Map.Tilegröße))) { Aktiv = false; } } } }Die beiden For-Schleifen sind für die Kollisionsprüfung zuständig, indem sie überprüfen, ob das Objekt mit einer Wand in Berührung kommt.
Das Spielfenster wird nicht mehr angezeigt, seit ich diese Schleifen im Code habe. Wenn ich eine davon entferne, wird es wieder angezeigt!
Hat jemand eine Idee was ich dagegen tun kann?
Vielen Dank schon mal im Voraus!
LG, hatschi12
PS: Zur Information: Map.Mapgröße ist ein Vector2, der die Mapgröße bestimmt. Position ist ein Vector2, der die Position des Objekts bestimmt. Größe bestimmt die Größe des Objekts und Map.Tilegröße bestimmt die Größe der Tiles, die den Hintergrund bilden.
Aktiv bestimmt, ob das Objekt aktiv ist, das heißt, wenn Aktiv auf false steht, wird das Objekt von der allgemeinen Update-Methode entfernt!
An dieser Zeile liegt es aber vermutlich nicht, da das Spielfenster auch dann angezeigt wird, wenn ich eine der Schleifen entferne und das "Aktiv = false" stehen lasse.
- Bearbeitet hatschi12 Dienstag, 6. März 2012 15:33
Alle Antworten
-
Dienstag, 6. März 2012 18:48
das könnte daran liegen das die innere schleife endlos ist da du solange durchgehst wie X kleiner mapgröße Y ist , aber x wird nicht erhöht.
mfg
Shmoo
- Als Antwort markiert Robert BreitenhoferMicrosoft Contingent Staff, Moderator Mittwoch, 7. März 2012 21:06
-
Mittwoch, 7. März 2012 20:02Ah, danke! Hab ich glatt übersehen!

