pygame 유효하지 않은 구문 나는 단지 알아낼 수 없습니다
문제
나는 튜토리얼 "McGugan- Python and Pygame (Apress, 2007)을 사용한 게임 개발 시작을 따르고 있으며, 객체 움직임과 관련된 5 장의 코드에서 코드에서 사용되는 ' -'에 대해 계속 무효 구문 경고를 얻었습니다. 최신 정보는 아니지만 단순성과 필요성으로 인해 업데이트에서 빼지 않을 것이라고 생각했을 것입니다.
이것은 내가 가진 코드입니다.
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.
당신은 어떻게 든 캐릭터를 입력했습니다. "–
"(대시) 대신"(en dash) "-
"(하이픈-미니). 사용"-
"(hyphen-minus) 대신 : 다음과 같습니다.
destination = Vector2(*event.pos) - Vector2(*sprite.get_size())/2.
다른 팁
스택 추적이 없으면 확신 할 수는 없지만 잘못된 상징이라는 직감이 있습니다. 어떤 편집기를 사용하고 있습니까? 편집자가 기호를 가져 와서 NDASH 또는 MDASH와 같은 더 멋진 대시로 전환 할 수 있습니까?
"속도 = 250.0"으로 속도를 변경해보십시오. 그 매달린 도트가 파이썬을 버릴지 모르겠습니다.
여기에서 일어나고있는 일은 적어도 오류 메시지로 Python 파서가 '-'에 대한 해석을 망치는 '-'앞에 무언가를 넘어 뜨리고 있다는 것입니다. 오타의 '-'보다 먼저 보는 것이 좋습니다.
또한 Python 코드를 디버깅 할 때 편집기에서 가시 공백을 켜십시오. 이것은 스택 오버플로에서 우리에게 보이지 않는 공백 오류 일 수 있습니다.
편집하다:
그래서 나는 그것에 대해 완전히 틀렸다. '-'오류는 빨간 청어입니다. 그러나 그 파서의 행동을 염두에 두어야합니다/공백을 염두에두면 미래에 도움이 될 수 있습니다.
이것이 당신에게 분명하다면 사과합니다. 나는 당신이 Python과 어떤 수준에 있는지 모릅니다.