Question

J'ai suivi un tutoriel « McGugan - A partir du développement du jeu avec Python et Pygame (Apress, 2007) » et dans le code à environ chapitre cinq impliquant un mouvement de l'objet que je continue à recevoir des alertes de syntaxe non valide sur « - » utilisé dans le code. Il n'est pas à jour, mais j'aurais pensé un Soustraire ne serait pas modifiée dans les mises à jour en raison de sa simplicité et de la nécessité.

Voici le code que j'ai:

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

je fais quelque chose de mal ou est-ce tout simplement pas à jour?

Toute aide est très nécessaire.

Était-ce utile?

La solution

Dans cette ligne:

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

Vous avez tapé en quelque sorte le caractère "" (EN DASH) au lieu de "-" (TRAIT D'UNION). Utilisez "-" (TRAIT D'UNION) à la place, comme ceci:

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

Autres conseils

Je ne peux pas être sûr sans trace de la pile, mais j'ai le pressentiment que c'est le mauvais - symbole. Quel éditeur utilisez-vous? Est-il possible que votre éditeur prend le symbole - et le transformer en un tableau de bord colombophile, comme un ndash ou un mdash?

Peut-être essayer de changer de vitesse à « vitesse = 250,0 ». Je ne sais pas si ce point ballants jetterait python off.

Qu'est-ce qui se passe ici, avec votre message d'erreur au moins, est l'analyseur Python trébuche sur quelque chose avant « - », qui plisse son interprétation de « - ». Je recommande donc à la recherche avant la « - ». Pour les fautes de frappe

Aussi, assurez-vous que vous allumez l'espace blanc visible dans votre éditeur lors du débogage du code Python. Cela pourrait être une erreur d'espace blanc, qui serait invisible pour nous à débordement de la pile.

EDIT: Donc, je me trompais complètement à ce sujet « - » erreur étant un faux. Mais gardez que le comportement de l'analyseur à l'esprit / chose espace blanc à l'esprit, pourrait aider à l'avenir.

Toutes mes excuses si cela est évident pour vous, je ne sais pas ce que vous êtes à niveau avec Python.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top