ошибка в коде Pygame - PullRequest
       10

ошибка в коде Pygame

2 голосов
/ 16 апреля 2010
# 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

ошибка, которую я получаю, это не-ASCII символ '\ xc2' в файле race1.py в строке 13, но кодировка не объявлена; см http://www.python.org/peps/pep-0263.html для подробностей

Не в состоянии понять, что это за ошибка и как от нее избавиться?

Ответы [ 2 ]

4 голосов
/ 16 апреля 2010

У вас есть не-ASCII символ в строке 13. Python не принимает UTF-8 в исходных файлах, если вы не поместите специальный комментарий вверху вашего файла:

# encoding: UTF-8
2 голосов
/ 16 апреля 2010

Как говорит Грег, в вашем коде есть не-ascii символ - который выглядит как знак минус перед 5 в строке 13. Он называется «мягкий дефис». Этот символ появляется в нескольких местах в вашем коде вместо знаков минус. Удалите эти символы и замените их знаком минус.

Ваш код выше не показывает символ. Не знаю почему. Когда я копирую и вставляю его в текстовый редактор, я вижу символ.

Если вы поместите комментарий кодирования вверху кода, например:

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

Вы получите синтаксическую ошибку с «мягким дефисом». Поэтому вам нужно заменить их все со знаком минус. (Тогда вам не понадобится комментарий к кодировке вверху кода.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...