0

我正在尝试设计一个系统,允许我在单击时将精灵移动到光标位置,类似于 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 实例替换为“sprite”即可。

那么如何存储返回的值pygame.mouse.get_posin (Shrin_x, Shrin_y)

4

2 回答 2

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

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

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

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

于 2012-07-19T15:30:41.107 回答
1

你需要打电话pygame.mouse.get_pos。您在代码中使用它的方式只是在查看方法。所以改变只改变一行:

(Shrin_x, Shrin_y) = pygame.mouse.get_pos() 
于 2012-07-19T15:31:16.990 回答