Seite 1 von 1

Absolute Koordinaten eines Objekts im Canvas bestimmen?

Verfasst: Montag 1. September 2014, 14:58
von mintpc
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

Re: Absolute Koodinaten eines Objekts im Canvas bestimmen?

Verfasst: Montag 1. September 2014, 15:19
von 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.

Re: Absolute Koodinaten eines Objekts im Canvas bestimmen?

Verfasst: Montag 1. September 2014, 15:43
von mintpc
Vielen Dank für die Antwort. Das wird mir weiterhelfen.
minpc