Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.07.2013, 17:15

[Python] Roguelike - Problem - wird nicht richtig gerendert (flush?)

Hi!

Ich habe hier versucht einem Tutorial zu folgen, zur Erstellung eines Roguelike-Games in Python. Soweit funktioniert auch alles, allerdings scheint das Programm jetzt nicht mehr das Fenster, in dem das Spiel dargestellt wird, gescheit zu aktualisieren. Ich habe den Code jetzt schon mehrmals mit der Vorlage verglichen (Ich habe nicht Copy und Paste gemacht, sondern nach und nach den Code abgeschrieben und versucht, zu verstehen, was passiert).

Für Hilfe wäre ich dankbar.

Ich füge es mal hier als pastebin-URL mit bei:
http://pastebin.com/w1utQv9c

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

07.07.2013, 21:54

Eine etwas genauere Fehlerbeschreibung wäre super. Weiterhin wäre es vielleicht hilfreich wenn du den Link zum Tutorial dazu haust. Hast du mal versucht ob es klappt wenn du ihn kopierst ? Möglicherweise ist das Tutorial schon fehlerhaft.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

08.07.2013, 02:41

Hallo!

Hier der Link zum Tutorial

http://roguebasin.roguelikedevelopment.o…d,_part_10_code

Natürlich ist alles sehr sehr ähnlich zu meinem, da ich ja mehr ein nachvollziehendes Abschreiben vollzogen hab. Mich würde allerdings nun interessieren, wo mein Fehler liegt. Der Code des Tutorials funktioniert einwandfrei.

Wie lässt sich mein Problem beschreiben? Ich kann das Spiel starten, ich kann die Figur mit den Pfeiltasten bewegen, allerdings aktualisiert der Bildschirm sich nur etwa alle 4 - 5 Pfeiltastendrücke. Hinzu kommt, dass die Spielfigur an der alten Stelle als "Kopie" stehen bleibt und an der neuen Stelle dann eben die Figur auch steht. D.h. nach einiger Zeit ist die ganze Karte mit Kopien meiner Spielfigur übersäht. Ich hoffe, ich muss das Prinzip roguelike nicht weiter erläutern (Nethack ist ein roguelike game z.B.).

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

08.07.2013, 09:23

Da der Code extrem lang ist möchte ich ihn mir ungern von Hand angucken. Mit einem Diff-Tool sehe ich auch sehr viele Unterschiede. Das liegt zum einen an den Kommentaren die du anders benannt hast. Ich habe aber auch schon gesehen, dass bei dir im Code Teile fehlen. Wie wichtig die nun fürs Projekt sind weiß ich nicht. Entweder stepst du da selbst mit nem Diff Tool durch und guckst ob du irgendwo einen Fehler hast, oder guckst mal was man da mit einem Debugger machen kann. Habe Python Code noch nie wirklich mit einem Debugger gecheckt, weshalb ich dir dazu wenig Tipps geben kann. Ansonsten gilt, so großen Code abschreiben bringt dir relativ wenig. Wenn du weißt dass es funktioniert ist es sinnvoll zu verstehen worum es geht und dann selbst ohne Vorlage Code zu schreiben der vom Prinzip ähnlich funktioniert. Oder du kopierst halt einfach alles. Dabei lernst du dann nur natürlich nichts. Das Problem ist auch dass man Roguelikes verschieden angehen kann. Man kann nach jeder Eingabe nur die veränderten Symbole neu zeichnen, oder eben direkt die ganze Welt neu zeichnen. Bei dir wird vermutlich ersteres verwendet so wie sich deine Fehlerbeschreibung anhört. Das Problem selbst kann aber wiederum viele Möglichkeiten haben.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

5

08.07.2013, 12:51

Es ist zwar schon eine Weile her, allerdings habe ich für meinen Teil bereits Python-Code debuggt (mit Eclipse und dem entsprechenden Plugin) und muss sagen, dass es sich nicht wirklich von anderen Programmiersprachen und deren Debugging unterscheidet. (Ich wüsste also nicht, was man speziell für das Python-Debuggen anmerken müsste.)

Für die Problemlösung selbst hat Schorsch ja bereits ausreichend Ansätze geliefert. Um Erfahrungen zu sammeln, kannst du natürlich den Debugger verwenden und gucken, ob du so dem Fehler auf den Grund gehen kannst. Wenn du abern ur schnellsmöglich den Fehler finden willst, könntest du mit einem Diff-Tool gucken, welche Unterschiede es zwischen deinem Code und deiner Vorlage gibt.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

6

08.07.2013, 12:52

Hi!

Vielen Dank! Deine Tipps helfen mir auf jeden Fall weiter!

Zum Tutorial: Ich baue mir parallel zum Tutorial eigenes Zeug zusammen und arbeite die Referenzen zu den Modulen/Bibliotheken durch, es hat mir auf jeden Fall schon eine Menge gebracht, ich verstehe deinen Punkt aber auf jeden Fall.

Gruß

Werbeanzeige