Seite 1 von 1

Klasse die von xturtle abgeleitet wird

Verfasst: Donnerstag 27. September 2007, 17:34
von Imperator
ich gebe es offen zu: Ich bin wahrhaftig kein OOP-Meister. Ich mach gerade ein kleines Miniminimini Game mit xturtle, dass als Werbespiel für meine Website dienen soll. xturtle reicht dafür vollkommen aus. Nun, da es nichts wichtiges ist dachte ich kann ich das Projekt dazu verwenden, meine OOp-Scheu zu verlieren, aber es tauchen auch schon probleme mit der Klasse auf.

Code: Alles auswählen

from xturtle import*
class Spieler(Turtle):
    def __init__(self):
        Turtle.__init__(self)

alex = Spieler
bert = Spieler
alex.color('red')
alex.forward(40)
    
Fehlermeldung:

Traceback (most recent call last):
File "C:\Python25\Porjekte\Turtlebowl.py", line 8, in <module>
alex.color('red')
TypeError: unbound method color() must be called with Spieler instance as first argument (got str instance instead)

Wäre schön wenn mir jemand helfen könnte. Vielleicht komm ich dann auch endlich bei pygame weiter (http://www.python-forum.de/topic-11832.html)

Verfasst: Donnerstag 27. September 2007, 18:30
von BlackJack
In Zeile 6 und 7 bindest Du einfach nur noch andere Namen an die Klasse `Spieler`. Du willst hier aber wohl eher Objekte vom Typ `Spieler` erzeugen, dazu musst Du die Klasse *aufrufen*. Es fehlen also die Klammern für den Aufruf.

Verfasst: Freitag 28. September 2007, 10:51
von Imperator
In ordnung, so funktioniert es! Danke!

Verfasst: Freitag 28. September 2007, 13:43
von Imperator
Jetzt brauch ich doch nochmal Hilfe.
Erst der Code:

Code: Alles auswählen

from xturtle import*
class Spieler(Turtle):
    def __init__(self):
        Turtle.__init__(self)
        self.color('red')
        self.penup()
        self.listen()

alex = Spieler()
bert = Spieler()
player = alex
def links():
    player.left(10)
def rechts():
    player.right(10)
def go(x,y):
    goto(x, y)
onkey(player.left(10), 'l')
player.onclick(goto)
    
Aber die Turtle reagiert weder auf Mausklicks, noch auf <-. Der Fokus ist mit listen() auf das Turtle fenser gesetzt. daran kann es nicht liegen.

Verfasst: Freitag 28. September 2007, 16:17
von BlackJack
Bei mir steigt das Programm schon aus weil es `Turtle` nicht gibt. Jedenfalls nicht in dem `xturtle.py` von hier: http://ada.rg16.asn-wien.ac.at/~python/xturtle/ (das ist von dem Autor des Buches "Python für Kids").

Verfasst: Samstag 29. September 2007, 09:13
von Imperator
Ich weiß, da ich das Buch besitze hab ich es aber.

Verfasst: Sonntag 30. September 2007, 09:17
von Leonidas
Imperator hat geschrieben:Ich weiß, da ich das Buch besitze hab ich es aber.
``turte.py`` nehmen? ``sdlturtle.py`` nutzen? ;)

Verfasst: Sonntag 30. September 2007, 09:53
von Imperator
Einen Versuch war es wert, aber leider trit dabei das selbe Problem auf. Außerdem stehen mir damit weniger funktionen zur verfügung. Aber ich bräuchte zum Beispiel eine um die Farben der Turtles zu verändern.

Verfasst: Montag 1. Oktober 2007, 16:14
von Leonidas
Imperator hat geschrieben:Aber ich bräuchte zum Beispiel eine um die Farben der Turtles zu verändern.
Dazuprogrammieren? Naja, wenn du magst, darfst du auch Patches für ``sdlturtle.py`` beisteuern.

Verfasst: Samstag 12. Januar 2008, 01:19
von Barachiel
Das xturtle Modul liefert doch ein Kilo Beispiel-Scripts mit... Wirf z.B. mal einen Blick in xtx_pencopydemo.py