Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations derfloh on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Mouse event binding

Status
Not open for further replies.

qlng2000

Programmer
Joined
Apr 5, 2006
Messages
1
Location
US
Dear All,

I am new with Python, if anyone could help me on mouse event I would very appreciated.

I have small pingpong application, I want to change a ball'color every time mouse is clicked.

Here is my code.

from Tkinter import *
import string


class Pong(Frame):
def createWidgets(self):
self.QUIT = Button(self, text='QUIT', foreground='red',
command=self.quit)
self.QUIT.pack(side=LEFT, fill=BOTH)

## The playing field
self.draw = Canvas(self, width="5i", height="5i")

## The speed control for the ball
self.speed = Scale(self, orient=HORIZONTAL, label="ball speed",
from_=-100, to=100)

self.speed.pack(side=BOTTOM, fill=X)

# The ball
#self.ball = self.draw.create_oval("0i", "0i", "0.10i", "0.10i",
# fill="red")
self.theBall()
self.x = 0.05
self.y = 0.05
self.velocity_x = 0.3
self.velocity_y = 0.5

self.draw.pack(side=LEFT)
def theBall(self):
self.ball = self.draw.create_oval("0i", "0i", "0.20i", "0.20i", fill='blue' )



def changeColor(sefl, event):
x = self.draw.canvasx(event.x)
y = self.draw.canvasy(event.y)
item = self.draw.find_closest(x,y)
currentColour = self.draw.itemcget(item, 'fill')
if currentColour == 'red':
self.draw.itemconfigure(item, fill='blue')
else:
self.draw.itemconfigure(item, fill='red')

def moveBall(self, *args):
if (self.x > 5.0) or (self.x < 0.0):
self.velocity_x = -1.0 * self.velocity_x
if (self.y > 5.0) or (self.y < 0.0):
self.velocity_y = -1.0 * self.velocity_y

deltax = (self.velocity_x * self.speed.get() / 100.0)
deltay = (self.velocity_y * self.speed.get() / 100.0)
self.x = self.x + deltax
self.y = self.y + deltay

self.draw.move(self.ball, "%ri" % deltax, "%ri" % deltay)
self.after(10, self.moveBall)

def __init__(self, master=None):
Frame.__init__(self, master)
Pack.config(self)
self.createWidgets()
self.after(10, self.moveBall)


game = Pong()

game.mainloop()


Thank you very much

Quoc
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top