Hallo zusammen,
habe eine PyGame- und PyOde-Neulingsfrage:
von http://www.pygame.org/projects/20/364/?release_id=614
habe ich mir geladen
http://www.sixthfloorlabs.com/files/ale ... 0.1.tar.gz, das ergibt
alexandria-0.1.1-src.zip. Das ergibt entpackt den Ordner alexandria-0.1.1
mit Unterordnern und Dateien
Nach Starten dort von main.py kommt folgende Fehlermeldung:
-------------------------------------------------------------------------
@periodic(10)
^
SyntaxError: invalid syntax
Detaillierter:
C:\Dokumente und Einstellungen\Besitzer\Eigene Dateien \My Python23 files>cd alexandria-0.1.1
C:\Dokumente und Einstellungen\Besitzer\Eigene Dateien\My Python23 files\alexandria-0.1.1>python main.py
Traceback (most recent call last):
File "main.py", line 11, in ?
import Input
File " C:\Dokumente und Einstellungen\Besitzer\Eigene Dateien \My Python23 files\\alexandria-0.1.1\Input.py", line 111
@periodic(10)
^
SyntaxError: invalid syntax
Warum? Was läuft falsch?
Installiert habe ich, meine ich, alles , was gefordert ist und wichtig sein
könnte:
--------------------------------------------------------------------------------------
PythonWin 2.3.5 und die darauf abgestimmten Versionen von PyGame,
Numeric, Numarray, Numpy, PyODE, ODE
Kann mir jemand helfen?
Danke,
siggi
P.S.
die betreffende Stelle in input.py ist:
-----------------------------------------
def stop(self, start):
if self.game.input_disabled: return
self.game.geometry.set_velo(self.game.player,Vector([0, 0]))
@periodic(10)
def shoot_bullet(self):
game = self.game
if game.input_disabled: return
player = game.player
game.shoot(player, Bullet(player, killstr=player.killstr, bounces=0, strength=20))
Also die EXE aus
http://www.sixthfloorlabs.com/files/ale ... -win32.zip
läuft bei mir ohne Probleme.
Python, Pygame auf WinXP: syntax error bei '@'
Das '@' dient zur Kennzeichnung eines Decorators. Grob gesagt ist das eine Funktion, die eine andere Funktion/Methode wrappen und dabei verändern/ergänzen/die Rückgabewerte ergänzen/bearbeiten/filtern kann.
Decorators wurden mit Python 2.4 eingeführt.
Decorators wurden mit Python 2.4 eingeführt.
Danke YOGi! Das erklärt, warum es bei mir mit Python 2.3.5 nicht klappt.Y0Gi hat geschrieben:Das '@' dient zur Kennzeichnung eines Decorators. Grob gesagt ist das eine Funktion, die eine andere Funktion/Methode wrappen und dabei verändern/ergänzen/die Rückgabewerte ergänzen/bearbeiten/filtern kann.
Decorators wurden mit Python 2.4 eingeführt.
siggi