Domanda

ho seguito un tutorial "McGugan - A partire Game Development con Python e Pygame (Apress, 2007)" e il codice a circa il capitolo cinque che coinvolge il movimento dell'oggetto continuo a ricevere avvisi sintassi non valida su '-' in uso in il codice. Non è aggiornato ma avrei pensato che una sottrazione non sarebbe cambiata in tutti gli aggiornamenti per la sua semplicità e necessità.

Questo è il codice che ho:

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

sto facendo qualcosa di sbagliato o è semplicemente obsoleto?

Ogni aiuto è molto necessaria.

È stato utile?

Soluzione

In questa riga:

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

È in qualche modo digitato il carattere "" (trattino) al posto di "-" (trattino-MINUS). Utilizzare "-" (trattino-MINUS), invece, in questo modo:

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

Altri suggerimenti

Non posso essere sicuro, senza una traccia dello stack, ma ho la sensazione che è sbagliato - simbolo. Cosa Editor stai usando? E 'possibile che il vostro editor sta prendendo il - simbolo e trasformandolo in un trattino più elaborato, come un ndash o un mdash?

Forse provare a cambiare la velocità di "speed = 250.0". Non so se quel puntino penzoloni getterebbe pitone off.

Che cosa sta succedendo qui, con il messaggio di errore, almeno, è il parser Python sta inciampando su qualcosa prima che il '-', che si avvita in sulla sua interpretazione di '-'. Quindi vi consiglio cercando prima del '-'. Per errori di battitura

Inoltre, assicurarsi che si accende lo spazio bianco visibile nel vostro editor durante il debug di codice Python. Questo potrebbe essere un errore di spazio bianco, che sarebbe invisibile a noi in overflow dello stack.

Modifica
Così mi è stato completamente sbagliato su questo '-' errore di essere una falsa pista. Ma mantenere quel comportamento parser in mente / bianco cosa lo spazio in mente, potrebbe aiutare in futuro.

Mi scuso se questo è ovvio per voi, non so quello che livello ti trovi con Python.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top