events in TKinter
Verfasst: Donnerstag 2. März 2006, 15:06
also ich wollte ja ein alleway clon proggen stolpere nur über das prob das ich unten den balken net bewegen kann. hat vll jmd ne idee?? wollte dsa eigentlich unten mit den linken und rehcten mousebutton als event gestaten.... bin aber irgendwie net in der lage das zu machen o0
(und ja ich bin ein noob xD)
(und ja ich bin ein noob xD)
Code: Alles auswählen
import Tkinter
import Canvas
import random
# ----------------------------------------------------------
# Funktionen
# ----------------------------------------------------------
def rechteck(fill='blue'):
blatt.create_rectangle(200,580,350,590,fill='blue')
def line(x0,y0,x1,y1):
blatt.create_line(x0,y0,x1,y1,fill='#000',width=1)
def line1(x0,y0,x1,y1):
blatt.create_line(x0,y0,x1,y1,fill='#FF0000',width=1)
def text(x,y,s):
blatt.create_text(x,y,text=s, anchor= 'nw')
def kreis(x,y,r):
blatt.create_oval(x-r,y-r,x+r,y+r)
def punkt(x,y):
blatt.create_oval(x-2,y-2,x+4,y+4, fill='#FFFF00')
def animation(event):
global dx
global dy
xm=100
ym=200
r=10
ball=Canvas.Oval(blatt,(xm-r,ym-r),(xm+r,ym+r),fill='red')
while 1:
xm =xm + dx
ym= ym +dy
if xm > 590 or xm< 10 :
dx = -dx
elif ym < 10 or ym > 590 :
dy = -dy
elif ym<20 and xm>200 and xm> 300:
rechteck.delete()
rechteck(fill='green')
ball.delete()
ball= Canvas.Oval(blatt,(xm-r,ym-r),(xm+r,ym+r),fill='red')
blatt.update()
blatt.after(50)
def links(event):
rechteck.delete()
blatt.create_rectangle(205,580,355,590,fill='blue') # erster versuch xD
#def rechts(event):
# ----------------------------------------------------------
# main
# ----------------------------------------------------------
# Fenster einrichten
hoehe = 600,
breite = 600
rahmen = Tkinter.Tk()
blatt = Tkinter.Canvas(rahmen,height=hoehe,width=breite,background='#fff')
blatt.pack()
#animation mit der maus
s= 'Die Animation wird mit der mittleren Maustaste gestartet'
text(10,20,s)
dx=2
dy=3
rechteck()
blatt.bind('<ButtonPress-2>',animation)
blatt.bind('<ButtonPress-1>',links)
#blatt.bind('<ButtonPress-3>',rechts)
#fenster schließen
rahmen.mainloop()