Klasse die von xturtle abgeleitet wird

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Donnerstag 27. September 2007, 17:34

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)
BlackJack

Donnerstag 27. September 2007, 18:30

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.
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Freitag 28. September 2007, 10:51

In ordnung, so funktioniert es! Danke!
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Freitag 28. September 2007, 13:43

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.
BlackJack

Freitag 28. September 2007, 16:17

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").
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Samstag 29. September 2007, 09:13

Ich weiß, da ich das Buch besitze hab ich es aber.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 30. September 2007, 09:17

Imperator hat geschrieben:Ich weiß, da ich das Buch besitze hab ich es aber.
``turte.py`` nehmen? ``sdlturtle.py`` nutzen? ;)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Sonntag 30. September 2007, 09:53

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.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 1. Oktober 2007, 16:14

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Barachiel
User
Beiträge: 3
Registriert: Freitag 1. September 2006, 18:23
Wohnort: Basel, CH

Samstag 12. Januar 2008, 01:19

Das xturtle Modul liefert doch ein Kilo Beispiel-Scripts mit... Wirf z.B. mal einen Blick in xtx_pencopydemo.py
Antworten