2013-10-20 32 views
0
import os, sys 
import pygame 
from pygame.locals import * 

pygame.init() 
screen = pygame.display.set_mode((800, 600)) 
pygame.mouse.set_visible(False) 

def loadimage(name, colorkey=None): 
    try: 
     pygame.image.load(os.path.join(name)) 
    except pygame.error, message: 
     print "Failed to load image ",name 


class Userplane(pygame.sprite.Sprite): 
    def __init__(self): 
     pygame.sprite.Sprite.__init__(self) 
     self.image, self.rect = loadimage("userplane.bmp") 

    def update(self): 
     pos = pygame.mouse.get_pos() 
     self.rect.midtop = pos 

def main(): 

    pygame.init() 
    screen = pygame.display.set_mode((800, 600)) 
    pygame.mouse.set_visible(False) 

    background = pygame.Surface(screen.get_size()) 
    background = background.convert() 
    background.fill((255,255,255)) 


    screen.blit(background, (0,0)) 
    pygame.display.flip() 

    user = Userplane() 
    allsprites = pygame.sprite.RenderPlain((user)) 
    clock = pygame.time.Clock() 

    while 1: 
     clock.tick(60) 
     for event in pygame.event.get(): 
      if event.type == QUIT: 
       return 
      elif event.type == KEYDOWN and event.key == K_ESCAPE: 
       return 

     allsprites.update() 

    screen.blit(background(0,0)) 
    pygame.display.flip() 

if __name__ == '__main__': main() 

嗨,即時通訊非常新,我剛剛完成codeacademy課程和chimppunch遊戲中的pygame教程。我使用幾乎完全相同的遊戲副本,但我試圖在屏幕底部顯示一個飛機而不是拳頭。我的Userplane類繼續拋出以下錯誤,我不知道爲什麼'typeerror:'nonetype'對象不可迭代第一個簡單的遊戲與Pygame錯誤

+1

你的追蹤在哪裏? –

+0

在哪一行發生錯誤?我在猜測pygame.event.get()中的事件:'但我想確定。 –

回答

1

原因是在您的loadimage函數中。

它不會返回加載的圖像,所以python抱怨說您試圖從NoneType中分配self.image, self.rect

在Python中,如果函數沒有返回任何東西,則假定返回None。

+0

'loadimage()'可能因爲找不到圖像文件而失敗。 – martineau

+0

或者圖像被發現,並且從未返回。 –

+0

是否打印「打印」加載圖像失敗「消息是否被打印將區分這兩個潛在的問題 – martineau