views:

276

answers:

3

I've been following a tutorial "McGugan - Beginning Game Development with Python and Pygame (Apress, 2007)" and in the code at around chapter five involving object movement I keep getting invalid syntax alerts on '-' being used in the code. It isn't up to date but I would've thought a subtract wouldn't be changed in any updates due to its simplicity and necessity.

This is the code I have:

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

am I doing something wrong or is it just simply outdated?

Any help is much needed.

+5  A: 

In this line:

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

You somehow typed the character "" (EN DASH) instead of "-" (HYPHEN-MINUS). Use "-" (HYPHEN-MINUS) instead, like this:

destination = Vector2(*event.pos) - Vector2(*sprite.get_size())/2.
nosklo
Ha, yeah that would be it, good eyes.
James McMahon
A: 

I can't be sure without a stack trace, but I have a hunch that it's the wrong - symbol. What editor are you using? Is it possible that your editor is taking the - symbol and turning it into a fancier dash, like an ndash or an mdash?

Benson
A: 

Maybe try changing speed to "speed = 250.0". I don't know if that dangling dot would throw python off.

What is going on here, with your error message at least, is the Python parser is stumbling over something before your '-', which screws up its interpretation of '-'. So I recommend looking before the '-' for typos.

Also, make sure you turn on visible white space in your editor when debugging Python code. This could be a white space error, which would be invisible to us at Stack Overflow.

EDIT:
So I was completely wrong about that '-' error being a red herring. But keep that parser behavior in mind/white space thing in mind, could help in the future.

Apologies if this is obvious to you, I don't know what level you are at with Python.

James McMahon
just started today -_-but it was giving me the problem with the - being a different icon which was masking I didn't have a file to import. so after I somehow fixed the - I figured out I was missing a chunk of stuff.
RamonLion