image image


Worknote: Schade, doch kein Pygame 2.0

Im Dezember hatte ich stolz verkündet, daß es mir gelungen sei, Pygame 2.0 zu installieren. Das war anscheinend etwas verfrüht. Denn nachdem Daniel Shiffman sein Projekt wiederaufgenommen hat, die Programme aus seinem Buch »The Nature of Code« neu von Processing (Java) nach JavaScript, genauer nach P5.js zu implementieren, wollte ich mein Projekt, diese Programme auch nach Python, genauer nach Pygame zu portieren, ebenfalls wieder aufnehmen.

image

Nun braucht Pygame eine Art »Boilerplate«, ein Template mit Code, der für jedes Pygame-Skript benötigt wird und bis auf kleine Varianten immer gleich ist. Zur Vorbereitung wollte ich mir solch ein Template bereitlegen. Bei der Implementierung stellte sich dann heraus, daß Pygame 2.0 zumindest auf meinem betagten MacBook Pro mit macOS Mojave und (Anaconda-) Python 3.7.9 doch nicht so recht funzte. Beim Start gab es immer kurz einen schwarzen Bildschirm mit seltsamen Farb-Artefakten (und das sowohl bei Pygame wie auch bei Pygame Zero). Anfangs hatte ich versucht, dies zu ignorieren, aber auf Dauer störte es mich doch. Und so habe ich ein Downgrade auf Pygame 1.9.6 durchgeführt und alles war wieder schick.

Ich sollte doch mehr meinen kategorischen Imperativ für SysAdmins und Programmierer beachten: Installiere nie eine Nuller-Version. Ich warte jetzt jedenfalls auf Pygame 2.1, bevor ich einen neuen Versuch wage.

Für Neugierige hier der Quellcode meines Pygame Boilerplates:

import pygame
from pygame.locals import *
import os

# Hier wird der Pfad zum Verzeichnis des ».py«-Files gesetzt
file_path = os.path.dirname(os.path.abspath(__file__))
os.chdir(file_path)

# Konstanten deklarieren
WIDTH, HEIGHT = 500, 500
TITLE = "🐍 Pygäme Boilerpläte 🐍"
FPS = 60
# BG = (234, 218, 184) # Packpapier-Farbe
BG = (49, 197, 244) # Coding Train Blue

# Pygame initialisieren und das Fenster und die Hintergrundfarbe festlegen
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(TITLE)
clock = pygame.time.Clock()

def update():
    pass

def draw():
    pass

keep_going = True
while keep_going:
    
    clock.tick(FPS)
    for event in pygame.event.get():
        if ((event.type == pygame.QUIT)
            or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE)):
            keep_going = False

    screen.fill(BG)
    update()
    draw()
    pygame.display.update()
    pygame.display.flip()

pygame.quit()

Warum ich mich bei meinem Python-Port für Pygame entschieden habe? Reine Neugierde, ich möchte nämlich herausfinden, wie gut sich Pygames Vector2 Modul gegen Processings PVector-Klasse schlägt. Still digging!

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 Rentner, 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

Diese Spalte wurde absichtlich leergelassen!


Werbung


image  image  image
image  image  image


image