2009-04-08 4 views
0

Ich habe ein Tutorial "McGugan - Beginn der Spielentwicklung mit Python und Pygame (Apress, 2007)" und im Code um Kapitel fünf mit Objektbewegung folgen ich immer Ungültige Syntaxwarnungen für '-' werden im Code verwendet. Es ist nicht auf dem neuesten Stand, aber ich hätte gedacht, dass ein Subtract aufgrund seiner Einfachheit und Notwendigkeit in keinen Updates geändert würde.Pygame Ungültige Syntax Ich kann einfach nicht herausfinden

Dies ist der Code, den ich habe:

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() 

bin ich etwas falsch zu machen, oder ist es einfach nur veraltet?

Jede Hilfe wird dringend benötigt.

+0

Bitte fügen Sie eine Traceback hinzu. –

+0

Sie sollten die erste Frage für die Nachwelt hinterlassen. –

+0

Sie sollten auch Nosklos Antwort als die richtige Antwort markieren. –

Antwort

5

In dieser Zeile:

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

Sie getippt irgendwie das Zeichen "" (EN DASH) anstelle von "-" (HYPHEN-MINUS). Use "-" (HYPHEN-MINUS) statt, wie folgt aus:

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

Ha, ja das wäre es, gute Augen. –

0

Ich kann nicht ohne ein Stack-Trace sicher sein, aber ich habe das Gefühl, dass es das ist falsch - Symbol. Welchen Editor benutzen Sie? Ist es möglich, dass Ihr Editor das - Symbol verwendet und es in einen schickeren Strich verwandelt, wie ein ndash oder ein mdash?

0

Versuchen Sie vielleicht, die Geschwindigkeit auf "speed = 250.0" zu ändern. Ich weiß nicht, ob dieser baumelnde Punkt Python abwerfen würde.

Was ist hier los, mit Ihrer Fehlermeldung zumindest, ist der Python-Parser über etwas vor Ihrem '-' stolpern, was seine Interpretation von '-' vermasselt. Daher empfehle ich, vor dem '-' nach Tippfehlern zu suchen.

Stellen Sie außerdem sicher, dass Sie beim Debuggen von Python-Code den sichtbaren Leerraum in Ihrem Editor aktivieren. Dies könnte ein Leerraumfehler sein, der bei Stack Overflow für uns unsichtbar wäre.

EDIT:
So war ich völlig falsch, dass '-' Fehler eine falsche Fährte zu sein. Aber behalte dieses Parser-Verhalten im Hinterkopf/White Space im Hinterkopf, könnte in Zukunft helfen.

Entschuldigung, wenn dies für Sie offensichtlich ist, weiß ich nicht, auf welcher Ebene Sie mit Python sind.

+0

hat gerade heute begonnen -_- aber es gab mir das Problem mit dem - ein anderes Symbol zu sein, das maskierte Ich hatte keine Datei zu importieren. Nachdem ich das irgendwie behoben hatte - ich fand heraus, dass mir ein Haufen Sachen fehlte. – RamonLion