문제

나는 튜토리얼 "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과 어떤 수준에 있는지 모릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top