繁体   English   中英

Pygame无效的语法我只是想不通

[英]Pygame Invalid Syntax I just can't figure out

我一直在遵循“ 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()

我是在做错什么,还是只是过时了?

任何帮助都是非常需要的。

在这一行:

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

您以某种方式键入了字符“ ”(英文破折号),而不是“ - ”(连字符-减号)。 改用“ - ”(HYPHEN-MINUS),如下所示:

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

我不能确定没有堆栈跟踪,但是我预感这是错误的-符号。 您正在使用什么编辑器? 您的编辑器是否有可能采用-符号并将其变成更奇特的破折号,例如ndash或mdash?

也许尝试将速度更改为“速度= 250.0”。 我不知道那个悬挂点是否会把python丢掉。

这里发生的事情(至少带有您的错误消息)是Python解析器在您的“-”之前绊了一下,这弄乱了对“-”的解释。 因此,我建议在“-”之前查找错别字。

另外,请确保在调试Python代码时打开编辑器中的可见空白。 这可能是空白错误,在Stack Overflow中我们看不到。

编辑:
因此,我完全错误地认为“-”错误是红色鲱鱼。 但是,请记住该解析器的行为/空白对象,这可能会在将来有所帮助。

抱歉,这对您来说很明显,我不知道您使用Python的水平。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM