有谁知道如果球不碰到球拍,我怎样才能让球离开屏幕?
这是我遇到的问题:
(1126, 555)
[1126, 555]
False
print(zip(indices[0], indices[1]))
IndexError: invalid index to scalar variable.
完整代码如下:
# intersection avec les raquettes
elif newX<= hit1:
newX=balle[0]
balle[2]*=-1
答案 0 :(得分:1)
删除这个 if 语句:
if newX<0 or newX>=myWidth:
newX=balle[0]
balle[2]*=-1
这是不允许球出垂直墙的部分
并将您的 miseAJourBalle
函数替换为:
def miseAJourBalle():
# calcul de la nouvelle position
newX=balle[0]+balle[2]
newY=balle[1]+balle[3]
hit1=raquette1[0]+raquette1[4]
hit2=raquette2[1]+raquette2[5]
if newY<0 or newY>=myHeight:
newY=balle[1]
balle[3]*=-1
# intersection avec les raquettes
bbox1 = myCanvas.bbox(raquette1[6])
bbox2 = myCanvas.bbox(raquette2[6])
if newX <= bbox1[2] and (newY>bbox1[1] and newY<bbox1[3]):
newX=balle[0]
balle[2]*=-1
if newX >= bbox2[0] and (newY>bbox2[1] and newY<bbox2[3]):
newX=balle[0]
balle[2]*=-1
# mise a jour des coordonnees
balle[0]=newX
balle[1]=newY
# mise a jour de l'element graphique
myCanvas.coords(balle[5],\
balle[0]-balle[4],balle[1]-balle[4],\
balle[0]+balle[4],balle[1]+balle[4])
bbox 将返回一个描述矩形边界框的元组,用于检查球是否击中了矩形。
此外,下次您发布问题时,请考虑在函数名称旁边添加英文注释,以便我们可以轻松了解每个函数的作用。翻译应用程序并不总是提供正确的翻译