2016-04-30 1 views
0

Je voudrais que le rectangle bouge où que ce soit, je clique sur ma souris, des idées? J'ai tout essayé et rien ne semble fonctionner. C'est pour un projet où la balle va tomber et le rectangle devra attraper la balle. Je dois juste rectangle pour se déplacer le long de l'axe X où que la souris est cliquéeDéplacer le rectangle le long de l'axe X en utilisant checkMouse()

from graphics import* 
import time 
from random import randrange 

wd=GraphWin("Catch A Ball",500,500)#size of window 
wd.setBackground("lightblue") 


p1=220 #size of rectangle # size of rectangle 
p2=250 


for i in range(1): #outline of rectangle 
spt1=Point(p1,480) 
spt2=Point(p2,500) 
rct=Rectangle(spt1,spt2) 
rct.setOutline("black") 
rct.setFill("black") 
rct.draw(wd) 

p=wd.getMouse() # defining the y and x axis 
c=rct.getCenter() 
dx=p.getX() - c.getX() 
dy=p.getY() - c.getY() 
rct.move(dx,0) 

Répondre

0

J'ai juste besoin rectangle pour se déplacer le long de l'axe X où jamais la souris est cliquée

le réusinage suivant de votre code devrait faire ce que vous décrivez:

from graphics import * 

SCREEN_WIDTH, SCREEN_HEIGHT = 500, 500 # size of window 

BOX_WIDTH, BOX_HEIGHT = 30, 20 

window = GraphWin("Catch A Ball", SCREEN_WIDTH, SCREEN_HEIGHT) 
window.setBackground("lightblue") 

for i in range(1): 
    ll = Point(SCREEN_WIDTH/2 - BOX_WIDTH/2, SCREEN_HEIGHT) 
    ur = Point(SCREEN_WIDTH/2 + BOX_WIDTH/2, SCREEN_HEIGHT - BOX_HEIGHT) 
    rectangle = Rectangle(ll, ur) # outline of rectangle 
    rectangle.setFill("black") 
    rectangle.draw(window) 

while True: 
    point = window.getMouse() # obtain cursor position 
    center = rectangle.getCenter() 
    dx = point.getX() - center.getX() 
    rectangle.move(dx, 0) 

Je ne suis pas complètement à l'aise avec la boucle infinie while True mais puisque les graphiques de Zelle n'exposent aucun événement Tkinter, nous nous débrouillerons.