def drawAllStars(window,numOfStars):
starlist=list()
for x in range(numOfStars):
cntrx = random.randrange(1000)
cntry= random.randrange(1000)
cntr = graphics.Point(cntrx, cntry)
drawstars(cntrx, cntry, 5, "black", window)
starlist.append(cntr)
print(starlist)
return starlist
def getDistance(point1,point2):
a= point1.getX()
b= point2.getX()
c= point1.getY()
d= point2.getY()
distance= math.sqrt((b-a)**2 + ((d-c)**2))
return distance
def balloonStarCollide(balloon, star):
point1 = balloon.getCenter()
point2= star
distance= getDistance(point1, point2)
if distance <= 30:
return True
else:
return False
def checkForStarCollision(balloon, stars):
for star in stars:
collide = balloonStarCollide(balloon, stars)
if collide == True:
return True
所以我画了一个星星列表并列出了他们的中心点。然后,我得到了一个函数,它可以获得给定星的中心之间的差异,然后将其与用户控制的圆的中心进行比较。该程序在getDistance函数中断,声称getX不可能用于&#39;列表&#39;宾语。
答案 0 :(得分:2)
checkForStarCollision
中有拼写错误。这条线
collide = balloonStarCollide(balloon, stars)
应该是
collide = balloonStarCollide(ballon, star)
假设stars
是一个列表,那将解释您的错误消息。