为什么我不能为此点获得X?

时间:2014-10-26 01:06:31

标签: python graphics

    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;宾语。

1 个答案:

答案 0 :(得分:2)

checkForStarCollision中有拼写错误。这条线

collide = balloonStarCollide(balloon, stars)

应该是

collide = balloonStarCollide(ballon, star)

假设stars是一个列表,那将解释您的错误消息。