image image


image

Python Arcade Update: Einmal nur mit Profis arbeiten!

Am Wochenende hatte ich aus einer Laune heraus angefangen, ein paar Beispiele aus dem 6. Kapitel (»Autonome Agenten«) von Daniel Shiffmans Buch The Nature of Code in Processing.py, dem Python-Mode von Processing, zu implementieren. Danach wollte ich, getreu meiner Idee, »The Nature of Code« mithilfe der Arcade-Bibliothek nach Python zu portieren, dies nach Arcade und Python umsetzen. Da Arcade seit wenigen Tagen in einer neuen Version 2.4.2 freigegeben war, habe ich zuerst das Update eingefahren. Danach ging gar nichts mehr. Alle Arcade-Python-Programme, die ich bisher geschrieben hatte und die vorher auch liefen, stiegen mit dem Fehler AttributeError: 'MyGame' object has no attribute 'get_pixel_ratio' aus.

Das ist das zweite Mal, daß mich Arcade im Stich läßt. Ich gebe daher auf und werde umsteigen: Ich habe für mein »The Number of Code to Python«-Projekt drei Möglichkeiten:

  1. Ich nutze Pygame Zero, die Bibliothek hat sich bisher stabil gezeigt und mich nie enttäuscht. Der Nachteil ist aber, daß – dem Schwerpunkt der Bibliothek als Lernumgebung für Anfänger geschuldet – die Behandlung von Klassen etwas umständlich ist.
  2. Ich gehe zurück zu Pygame. Zwar schleppe ich da einen riesigen Overhead an Initialisierungen mit, aber dafür ist das Teil seit Jahren in Gebrauch, einiges ist zwar umständlich zu implementieren, aber alles funktioniert und die Auswahl an Literatur ist riesig.
  3. Ich portiere alles von Processing (Java) nach Processing.py. Vom Aufwand her dürfte das der einfachste Weg sein, aber da Processing.py auf Jython basiert, schlage ich mich da weiter mit Python 2.7 herum.

Ich werde jetzt erst einmal ein/zwei Tage darüber schlafen und mich dann entscheiden. Aber innerlich neige ich momentan zu Processing.py, ich habe mit den fehlgeschlagenen Arcade-Versuchen einfach schon zu viel Zeit vergeudet.


1 (Email-) Kommentar


Bevor Du alles umwirfst, schau doch mal in deinem Code nach den Verwendungen von "MyGame". Ich vermute, Du hast da Code aus Beispieldateien übernommen, den Du nicht auf die aktuelle Version aktualisiert hast.
‘get_pixel_ratio’ ist eine Methode der "Window" Klasse; d.h. MyGame sollte von Window erben.
In examples/transform_feedback.py wird die Verwendung gezeigt:
class MyGame(arcade.Window):

def on_draw(self):

self.ctx.point_size = 2 * self.get_pixel_ratio()
Ich habe auf ein aktuelles python3.8.5 mit
sudo -H pip3 install arcade
Arcade installiert und konnte keine ernsthaften Fehler in den Beispielen entdecken. Lediglich für nicht installierte Libraries.

– Karsten Wolf. (Kommentieren) (#)


(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