我正在尝试设计一个系统,允许我在点击时将精灵移动到光标位置,类似于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)
返回的值?
答案 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()