On 09/05/16 16:55, boB Stepp wrote: >> class dot: >> def __init__(self, canvas, color): >> self.canvas = canvas >> self.id = canvas.create_oval(15, 15, 30, 30, fill='Blue', >> tags='dot1') >> >> this = dot(canvas, 'blue')
You create an instance of your class called this. But you never refer to it again. >> def ball(n, x, y): >> canvas.move(n, x, y) >> >> def restart(): >> if (canvas.find_overlapping(x, y, x2, y2) == (1, 2)) or >> (canvas.find_overlapping(x, y, x2, y2) == (1, 3)) or >> (canvas.find_overlapping(x, y, x2, y2) == (1, 4)) or >> (canvas.find_overlapping(x, y, x2, y2) == (1, 5)) or >> (canvas.find_overlapping(x, y, x2, y2) == (1, 6)) == True: >> canvas.delete('dot1') Here you delete the shape that your object, this, drew on the canvas but you do not delete the object. 'this' is still there. The normal way to do this kind of thing in a GUI program is to have the class have a paint/draw method that makes it visible and a hide/erase method that makes it invisible (by drawing itself with the background colour). You probably need a move() method too. You can then manipulate the "dot" (although Ball is probably a more suitable name?) by calling move() draw() and erase() on the object itself. You might want an isOverlapping() method too, that simply returns a boolean. That will hide all that horrible if/else nastiness (or even the dictionary lookup if you adopt Bob's (excellent) option. You then wind up with something like ball.move(x,y) if ball.isOverlapping(X,Y,X1,Y1): ball.erase() else: ball.draw() Which is a lot more readable IMHO. A more indirect solution to your problem would be to use pyGame to build the game where sprites etc come as standard. But pyGame itself does not of course come as standard... :-( -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor