Pygame-Tutorial
Aus Spieleprogrammierer-Wiki
(Unterschied zwischen Versionen)
[gesichtete Version] | [gesichtete Version] |
(→Die Animation-Klasse) |
|||
Zeile 695: | Zeile 695: | ||
# -*- coding: UTF-8 -*- | # -*- coding: UTF-8 -*- | ||
− | # Pygame Modul importieren. | + | # Pygame-Modul importieren. |
import pygame | import pygame | ||
− | # Unser Tilemap Modul | + | # Unser Tilemap-Modul ebenfalls importieren. |
import Tilemap | import Tilemap | ||
Zeile 716: | Zeile 716: | ||
pygame.key.set_repeat(1, 30) | pygame.key.set_repeat(1, 30) | ||
− | # Clock Objekt erstellen, das | + | # Clock-Objekt erstellen, das wir benötigen, um die Framerate zu begrenzen. |
clock = pygame.time.Clock() | clock = pygame.time.Clock() | ||
Zeile 750: | Zeile 750: | ||
map.render(screen) | map.render(screen) | ||
− | # Inhalt von screen anzeigen | + | # Inhalt von screen anzeigen. |
pygame.display.flip() | pygame.display.flip() | ||
Zeile 781: | Zeile 781: | ||
# Dazu müssen wir wissen, an welcher Position die Frames beginnen, | # Dazu müssen wir wissen, an welcher Position die Frames beginnen, | ||
# wie viele Frames die Animation hat, | # wie viele Frames die Animation hat, | ||
− | # sowie die Breite und Höhe der Animation. | + | # sowie die Breite und Höhe der Animation kennen. |
self.__startX = startX | self.__startX = startX | ||
self.__startY = startY | self.__startY = startY | ||
Zeile 788: | Zeile 788: | ||
self.__height = height | self.__height = height | ||
− | # Und natürlich nach welchem Zeitraum wir | + | # Und natürlich auch, nach welchem Zeitraum wir das nächste Frame anzeigen sollen. |
self.__duration = duration | self.__duration = duration | ||
− | # Die aktuelle Zeit und | + | # Die aktuelle Zeit und das aktuelle Frame speichern wie ebenfalls. |
self.__time = 0 | self.__time = 0 | ||
self.__current = 0 | self.__current = 0 | ||
Zeile 801: | Zeile 801: | ||
<sourcecode lang=python line start=44> | <sourcecode lang=python line start=44> | ||
− | # | + | # Das aktuelle Frame an einer bestimmten Position rendern: |
def render(self, screen, pos): | def render(self, screen, pos): | ||
# Welchen Bereich aus der Grafik müssen wir anzeigen? | # Welchen Bereich aus der Grafik müssen wir anzeigen? | ||
Zeile 814: | Zeile 814: | ||
<sourcecode lang=python line start=29> | <sourcecode lang=python line start=29> | ||
− | # Die update-Methode rufen wir einmal pro Frame auf: | + | # Die update-Methode rufen wir einmal pro Frame auf: |
def update(self, time = 1): | def update(self, time = 1): | ||
# Die vergangene Zeit addieren. | # Die vergangene Zeit addieren. | ||
self.__time += time | self.__time += time | ||
− | # Falls wir | + | # Falls wir die Anzeigedauer überschreiten, ... |
if self.__time > self.__duration: | if self.__time > self.__duration: | ||
− | # ... | + | # ... setzen wir die Zeit zurück und gehen zum nächsten Frame. |
self.__time = 0 | self.__time = 0 | ||
self.__current += 1 | self.__current += 1 | ||
− | # Sicherstellen, dass | + | # Sicherstellen, dass das aktuelle Frame auch verfügbar ist. |
if self.__current >= self.__num: | if self.__current >= self.__num: | ||
self.__current = 0 | self.__current = 0 |
Version vom 29. Oktober 2011, 12:15 Uhr
Klicke hier, um diese Version anzusehen.