I have problem with pygame and python 3 in ubuntu 12.10. When i tried load an image i got this error:
pygame.error: File is not a Windows BMP file
But in python 2.7 all works fine. I use code from http://inventwithpython.com/chapter19.html
Sorry for my poor English.
import pygame, sys, time, random
from pygame.locals import *
# set up pygame
pygame.init()
mainClock = pygame.time.Clock()
# set up the window
WINDOWWIDTH = 400
WINDOWHEIGHT = 400
windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT), 0, 32)
pygame.display.set_caption('Sprites and Sound')
# set up the colors
BLACK = (0, 0, 0)
# set up the block data structure
player = pygame.Rect(300, 100, 40, 40)
playerImage = pygame.image.load('player.png')
playerStretchedImage = pygame.transform.scale(playerImage, (40, 40))
foodImage = pygame.image.load('cherry.png')
foods = []
for i in range(20):foods.append(pygame.Rect(random.randint(0, WINDOWWIDTH - 20), random.randint(0, WINDOWHEIGHT - 20), 20, 20))
foodCounter = 0
NEWFOOD = 40
# set up keyboard variables
moveLeft = False
moveRight = False
moveUp = False
moveDown = False
MOVESPEED = 6
# set up music
pickUpSound = pygame.mixer.Sound('pickup.wav')
pygame.mixer.music.load('background.mid')
pygame.mixer.music.play(-1, 0.0)
musicPlaying = True
# run the game loop
while True:# check for the QUIT eventfor event in pygame.event.get():if event.type == QUIT:pygame.quit()sys.exit()if event.type == KEYDOWN:# change the keyboard variablesif event.key == K_LEFT or event.key == ord('a'):moveRight = FalsemoveLeft = Trueif event.key == K_RIGHT or event.key == ord('d'):moveLeft = FalsemoveRight = Trueif event.key == K_UP or event.key == ord('w'):moveDown = FalsemoveUp = Trueif event.key == K_DOWN or event.key == ord('s'):moveUp = FalsemoveDown = Trueif event.type == KEYUP:if event.key == K_ESCAPE:pygame.quit()sys.exit()if event.key == K_LEFT or event.key == ord('a'):moveLeft = Falseif event.key == K_RIGHT or event.key == ord('d'):moveRight = Falseif event.key == K_UP or event.key == ord('w'):moveUp = Falseif event.key == K_DOWN or event.key == ord('s'):moveDown = Falseif event.key == ord('x'):player.top = random.randint(0, WINDOWHEIGHT - player.height)player.left = random.randint(0, WINDOWWIDTH - player.width)if event.key == ord('m'):if musicPlaying:pygame.mixer.music.stop()else:pygame.mixer.music.play(-1, 0.0)musicPlaying = not musicPlayingif event.type == MOUSEBUTTONUP:foods.append(pygame.Rect(event.pos[0] - 10, event.pos[1] - 10, 20, 20))foodCounter += 1if foodCounter >= NEWFOOD:# add new foodfoodCounter = 0foods.append(pygame.Rect(random.randint(0, WINDOWWIDTH - 20), random.randint(0, WINDOWHEIGHT - 20), 20, 20))# draw the black background onto the surfacewindowSurface.fill(BLACK)# move the playerif moveDown and player.bottom < WINDOWHEIGHT:player.top += MOVESPEEDif moveUp and player.top > 0:player.top -= MOVESPEEDif moveLeft and player.left > 0:player.left -= MOVESPEEDif moveRight and player.right < WINDOWWIDTH:player.right += MOVESPEED# draw the block onto the surfacewindowSurface.blit(playerStretchedImage, player)# check if the block has intersected with any food squares.for food in foods[:]:if player.colliderect(food):foods.remove(food)player = pygame.Rect(player.left, player.top, player.width + 2, player.height + 2)playerStretchedImage = pygame.transform.scale(playerImage, (player.width, player.height))if musicPlaying:pickUpSound.play()# draw the foodfor food in foods:windowSurface.blit(foodImage, food)# draw the window onto the screenpygame.display.update()mainClock.tick(40)