开发者

error in a pygame code

# INTIALISATION
import pygame, math, sys
from pygame.locals import *
screen = pygame.display.set_mode((1024, 768))
car = pygame.image.load('car.png')
clock = pygame.time.Clock()
k_up = k_down = k_left = k_right = 0
speed = direction = 0
position = (100, 100)
TURN_SPEED = 5
ACCELERATION = 2
MAX_FORWARD_SPEED = 10
MAX_REVERSE_SPEED = ­5
BLACK = (0,0,0)
while 1:
    # USER INPUT
    clock.tick(30)
    for event in pygame.event.get():
        if not hasattr(event, 'key'): continue
        down = event.type == KEYDOWN     # key down or up?
        if event.key == K开发者_开发百科_RIGHT: k_right = down * ­5
        elif event.key == K_LEFT: k_left = down * 5
        elif event.key == K_UP: k_up = down * 2
        elif event.key == K_DOWN: k_down = down * ­2
        elif event.key == K_ESCAPE: sys.exit(0)     # quit the game
    screen.fill(BLACK)
    # SIMULATION
    # .. new speed and direction based on acceleration and turn
    speed += (k_up + k_down)
    if speed > MAX_FORWARD_SPEED: speed = MAX_FORWARD_SPEED
    if speed < MAX_REVERSE_SPEED: speed = MAX_REVERSE_SPEED
    direction += (k_right + k_left)
    # .. new position based on current position, speed and direction
    x, y = position
    rad = direction * math.pi / 180
    x += ­speed*math.sin(rad)
    y += ­speed*math.cos(rad)
    position = (x, y)
    # RENDERING
    # .. rotate the car image for direction
    rotated = pygame.transform.rotate(car, direction)
    # .. position the car on screen
    rect = rotated.get_rect()
    rect.center = position
    # .. render the car to screen
    screen.blit(rotated, rect)
    pygame.display.flip()
    enter code here

the error i get is this Non-ASCII character '\xc2' in file race1.py on line 13, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Not able to understand what the error is and how to get rid of it?


You have a non-ASCII character on line 13. Python doesn't accept UTF-8 in source files unless you put a special comment at the top of your file:

# encoding: UTF-8


As Greg says, you have a non-ascii character in your code - what looks like a minus sign in front of the 5 on line 13. It is called 'soft hyphen'. This character appears in a few locations in your code instead of minus signs. Delete these characters and replace with minus signs.

Your code above doesn't show the character. Don't know why. When I copy and paste it into a text editor I can see the character.

If you put an encoding comment at the top of you code, for example:

# -*- coding: utf-8 -*-

You will get a syntax error with the 'soft hyphen'. So you need to replace them all with minus signs. (Then you won't need the encoding comment at the top of the code.)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜