Bildschirm scrollen

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Newcomer
User
Beiträge: 131
Registriert: Sonntag 15. Mai 2011, 20:41

Halllo, ich möchte ein Jump´n Run Game mit Pygame schreiben. Hab noch keinen Code, aber mir schon Gedanken (viele!) drüber gemacht, wie das Spiel im Grundgerüst aussehen soll. Dabei bleibt eine Schwierigkeit: Der Bildschirm muss irgendwie gescrollt werden. Wie funktioniert das???
Danke im Vorraus
deets

Heutzutage einfach, indem man immer wieder alles neu malt. Mit verschobenene Positionen. Wie genau haengt dann natuerlich von deinem Spiel ab, und was du fuer eine Level-Engine benutzt. Tiling, oder einfach nur ein grosses Bild usw.

Ich glaube aber, dass du erstmal ueberhaupt was auf den Bildschirm bekommen solltest. Scrollende Level sind gaaanz weit hinten auf deiner TODO-Liste - ueberleg mal, wieviele Spiele mit nur einem Screen auskommen :)
BlackJack

@Newcomer: Wie sind die Levels aufgebaut? Wie gross sind die? Könnte man ein komplettes Level auf ein grosses Surface zeichnen, oder wird das zu gross? Wie unterschiedlich sind die Grafiken im Verlauf des Levels? Setzt Du alles aus Blöcken oder wiederverwendeten Teilgrafiken zusammen, oder ist es eher so das jeder Teil des Levels individuell gemalt wurde/wird?
Newcomer
User
Beiträge: 131
Registriert: Sonntag 15. Mai 2011, 20:41

Naja, das sieht so aus: Der Boden, auf dem die Spielfigur läuft, sind mehrere Rects aneinander ( wenn zum beispiel ein Hindernis durch Sprung etc. überwunden werden muss) getan. Auf so einen Bildschirm kann ich also nicht wirklich viel zeichnen ):
deets

@Newcomer

Verstehe ich nicht, was die Aussage bedeuten soll. Du zeichnest doch die Hindernisse. Ein Level besteht also mindestenst mal aus einer Liste von Dingen, mit Koordinaten. Und die zeichnest du doch auch ?!

Und fuer "scrollen" geht es jetzt darum, die Koordinaten nicht als Bildschirmkoordinaten zu werten. Sondern als globale Level-Koordinaten. Und dann hast du einen Viewport-Nullpunkt (ueblicherweise die obere linke Ecke), und die Koordinate auf dem Bildschirm eines Level-Elementes berechnet sich etwa so:

Code: Alles auswählen

screen_x = objekt_x - viewport_x # analog natuerlich y
Das war's dann schon mit Scrollen. Sowas ist in 5min implementiert, wenn man so etwas wie eine Level-Klasse hat. Da kommen ja noch jede Menge andere Dinge zu, zB nur die im aktuellen Viewport liegenden Objekte darzustellen usw.
Newcomer
User
Beiträge: 131
Registriert: Sonntag 15. Mai 2011, 20:41

ahhh danke. Ich hab mich zuerst einmal an etwas leicherem versuch (:
Antworten