如何设置一个变量等于python中函数返回的值

时间:2012-07-19 15:20:50

标签: python sprite pygame

我正在尝试设计一个系统,允许我在点击时将精灵移动到光标位置,类似于RuneScape,玩家将移动到屏幕上鼠标点击的位置。以下是我的代码:

    for event in pygame.event.get ():
    if event.type == QUIT:
        pygame.quit ()
        sys.exit (0)

    elif event.type == KEYDOWN:
        if event.key == K_UP:
            Shrin_y -= 5
        elif event.key == K_LEFT:
            Shrin_x -= 5
        elif event.key == K_RIGHT:  
            Shrin_x += 5 
        elif event.key == K_DOWN:   
            Shrin_y += 5 
    elif event.type == MOUSEBUTTONDOWN:
        (Shrin_x, Shrin_y) = pygame.mouse.get_pos
        print pygame.mouse.get_pos

Surface.blit (Shrin, (Shrin_x, Shrin_y))

pygame.display.update ()

注意:Shrin只是精灵的名字;如果它让你高兴的话,只需用'精灵'替换代码中的所有Shrin实例。

那么如何在pygame.mouse.get_pos中存储由(Shrin_x, Shrin_y)返回的值?

2 个答案:

答案 0 :(得分:6)

(Shrin_x, Shrin_y) = pygame.mouse.get_pos

这一行应该给你一个错误,因为它试图将一个值(函数或方法对象)解包为两个变量。你想要的是:

(Shrin_x, Shrin_y) = pygame.mouse.get_pos()

不同之处在于()是调用可调用对象的运算符。

答案 1 :(得分:1)

您需要致电pygame.mouse.get_pos。您在代码中拥有它的方式就是查看方法。所以改变就改变一行:

(Shrin_x, Shrin_y) = pygame.mouse.get_pos()