image image


Noch einmal: Ein Pygame-Grundgerüst

An dem von mir hier vorgestellten Pygame-Grundgerüst hatte mich noch der Wildcard-Import from settings import * gestört. Daher habe ich das Teil so geändert, daß die Datei settings.py nun eine Klasse Settings() enthält. Die Datei sieht also nun so aus:

# Konstanten und Einstellungen für das Spiel
import pygame as pg

class Settings():
    
    def __init__(self):

        # Einige nützliche Konstanten
        self.TITLE = "🐍 Hällo Pygäme! 🐍"
        self.WIDTH = 640
        self.HEIGHT = 480
        self.FPS = 60   # Framerate

        # Nützliche Farbdefinitionen 
        self.WHITE = (255, 255, 255)
        self.BLACK = (0, 0, 0)
        self.RED = (255, 0, 0)
        self.GREEN = (0, 255, 0)
        self.BLUE = (0, 0, 255)
        self.YELLOW = (255, 255, 0)
        self.GREY = (160, 160, 160)

Natürlich muß man nun im Hauptprogramm die Klasse importieren:

from settings import Settings

Damit ist der Wildcard-Import verschwunden, aber natürlich muß nun expliziert eine Instanz der Klasse erzeugt werden. Das geschieht am Besten vor der eigentlichen Hauptschleife und bevor die Klasse World() instanziert wird.

s = Settings()
w = World()
w.splash_screen()
while w.keep_going:
    w.new()
    w.game_over()

Außerdem muß nun den Konstanten aus der Klasse Settings() jeweils der Objektname in Punknotation vorangestellt werden, also zum Beispiel s.BLACK, s.WIDTH oder s.TITLE. Aber dafür ist der Import nun sauber und es kann keine Namensraumverschmutzung mehr stattfinden.

Den Quellcode im Original-Beitrag habe ich entsprechend aktualisiert.

image


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung


Werbung


image  image  image
image  image  image


image