Absolute Koordinaten eines Objekts im Canvas bestimmen?

Fragen zu Tkinter.
Antworten
mintpc
User
Beiträge: 50
Registriert: Montag 23. Januar 2012, 12:44

Hallo zusammen,

ich wollte "Flappy Bird" programmieren und sitze mal wieder an einem Python-Problem.

Also: ich hab ein Bild in einer Canvas drin:

Code: Alles auswählen

Bird = tkinter.PhotoImage(file="FlappyBirdGif.gif")
canvas=tkinter.Canvas(Fenster, width=600, height= 600, bg='white')
canvas.pack()
canvas.create_image(200,100,image=Bird, anchor=tkinter.NW)
Das Bild des Vogels bewegt sich einige Male:

Code: Alles auswählen

 canvas.move(1,0,  3*XPosition - 4)
Nun möchte ich feststellen, ob der Vogel mit irgendwas kollidiert. Dazu brauche ich
die Koordinaten des Vogels (Bildes).

Ich könnte für den Vogel ein Objekt anlegen, in dem x/y-Koordinaten nachgehalten werden
oder ich könnte globale Variablen vogelX und vogelY anlegen und erneuern.
Will ich aber nicht.

Gibt es eine einfache Möglichkeit wie in den anderen Sprachen auch, einfach die absoluten
Koordinaten des Vogelbildes im Canvas abzulesen? (wie in Lazarus oder Java, die haben dazu top/left bzw. getX/getY)


Danke schonmal und beste Grüße
mintpc
BlackJack

@mintpc: Schau Dir mal die Methoden `coords()` und `bbox()` auf `Canvas`-Objekten an.

Edit: Die ”magische” 1 beim `move()`-Aufruf ist keine gute Idee. Das kann funktionieren, muss es aber nicht.
mintpc
User
Beiträge: 50
Registriert: Montag 23. Januar 2012, 12:44

Vielen Dank für die Antwort. Das wird mir weiterhelfen.
minpc
Antworten