0

マウスをクリックするたびに四角形を移動させたいのですが、何かアイデアはありますか? 私はすべてを試しましたが、何もうまくいかないようです。これは、ボールが落下し、長方形がボールをキャッチする必要があるプロジェクト用です。マウスがクリックされたときはいつでも、X 軸に沿って移動するために四角形が必要です。

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)
4

1 に答える 1

0

マウスがクリックされたときはいつでも、X 軸に沿って移動するために四角形が必要です。

コードの次のリワークは、あなたが説明したことを行う必要があります。

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)

私は無限ループに完全に満足しているわけでwhile Trueはありませんが、Zelle グラフィックスは Tkinter タイマー イベントをまったく公開しないため、何とかする必要があります。

于 2017-01-09T03:34:50.587 に答える