Pygame无效的语法我无法弄清楚

时间:2009-04-08 17:49:16

标签: python syntax pygame

我一直在关注教程“McGugan - 使用Python和Pygame开始游戏开发(Apress,2007)”,并且在第五章涉及对象移动的代码中,我一直在使用' - '的语法警报无效代码。它不是最新的,但我认为由于其简单性和必要性,任何更新都不会改变减法。

这是我的代码:

background_image_filename = 'sushiplate.jpg'
sprite_image_filename = 'fugu.png'
import pygame
from pygame.locals import *
from sys import exit
from gameobjects.vector2 import Vector2
pygame.init()
screen = pygame.display.set_mode((640, 480), 0, 32)
background = pygame.image.load(background_image_filename).convert()
sprite = pygame.image.load(sprite_image_filename).convert_alpha()
clock = pygame.time.Clock()
position = Vector2(100.0, 100.0)
speed = 250.
heading = Vector2()
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            exit()
    if event.type == MOUSEBUTTONDOWN:
        destination = Vector2(*event.pos) – Vector2(*sprite.get_size())/2.
        heading = Vector2.from_points(position, destination)
        heading.normalize()
    screen.blit(background, (0,0))
    screen.blit(sprite, position)
    time_passed = clock.tick()
    time_passed_seconds = time_passed / 1000.0
    distance_moved = time_passed_seconds * speed
    position += heading * distance_moved
    pygame.display.update()
我是做错了还是只是过时了?

非常需要任何帮助。

3 个答案:

答案 0 :(得分:5)

在这一行:

destination = Vector2(*event.pos) – Vector2(*sprite.get_size())/2.

你以某种方式键入了字符“”(EN DASH)而不是“-”(HYPHEN-MINUS)。 改为使用“-”(HYPHEN-MINUS),如下所示:

destination = Vector2(*event.pos) - Vector2(*sprite.get_size())/2.

答案 1 :(得分:0)

如果没有堆栈跟踪,我无法确定,但我有一种预感,这是错误的 - 符号。你在用什么编辑器?您的编辑器是否可能采用 - 符号并将其转换为更高级的短划线,如ndash或mdash?

答案 2 :(得分:0)

也许尝试将速度更改为“速度= 250.0”。我不知道那个悬空点是否会抛出python。

这里发生的事情,至少是你的错误信息,是Python解析器在你的' - '之前绊倒了什么,这搞砸了它对' - '的解释。所以我建议在' - '之前查看拼写错误。

另外,在调试Python代码时,请确保在编辑器中打开可见空白区域。这可能是一个空白错误,在Stack Overflow中我们将无法看到它。

修改
所以我完全错了' - '错误是一个红色的鲱鱼。但请记住解析器行为在脑海/白色空间的事情,将来可能有所帮助。

道歉,如果这对你来说很明显,我不知道你在Python上的等级。