如何在Python中随机移动画布上的球?

2024-09-29 23:32:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我创造了一个小游戏,但我有一些问题。在

这是代码:http://pastebin.com/XkSvLAHS

所以,有一个球应该在画布上随机移动,但我现在不知道怎么做。 我有这个:

def move_ball_right_down(): 
    global x, y, dx, dy 

    x, y = x + dx, y + dy 

    can.coords(ball, x-r, y-r, x+r, y+r) 

def move_ball_left_up(): 
    global x, y, dx, dy 

    x, y = x - dx, y - dy 

    can.coords(ball, x-r, y-r, x+r, y+r)

但是这样的话,球只会从一个角到另一个角,但它应该是随机移动的。在

我还有一个问题:

^{pr2}$

这些线假设用来探测球,所以当我点击时,我得到一个点,但它选择的不仅仅是球,而是它周围的一个正方形,我相信有更好的方法来检测球。我该怎么办?在


Tags: 代码comhttpmovedef画布coordsglobal
1条回答
网友
1楼 · 发布于 2024-09-29 23:32:49

对于第一个问题,为什么不把x和y随机化,而忽略dx和{}?在

def move_ball_right_down(): 
    global x, y

    x, y = randrange(0, 400), randrange(0, 400)  # Randomize x and y (note that you should substitute your max and min canvas coordinate values if you want the ball to stay in view.

    can.coords(ball, x-r, y-r, x+r, y+r) 

至于你的第二个问题,如果你想让用户点击球本身,而不是边界矩形的任何地方,把最后一条if语句改为:

^{pr2}$

这基本上就是毕达哥拉斯公式,指出点(event.x,event.y)和(x,y)之间的距离小于或等于r

相关问题 更多 >

    热门问题