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

こんにちは、非常に新しいものです。pygame チュートリアルの codeacademy コースとチンプパンチ ゲームを終えたところです。私はそのゲームのほぼ正確なコピーを使用していますが、代わりに拳の代わりに画面の下部に飛行機を表示しようとしています. 私の Userplane クラスは次のエラーをスローし続け、理由がわかりません。「typeerror: 'nonetype' object is not iterable」

4

1 に答える 1

1

その理由は、loadimage 関数にあります。

ロードされたイメージを返さないため、Python はself.image, self.rectNoneType から割り当てようとしていると不平を言っています。

Python では、関数が何も返さない場合、None を返すと見なされます。

于 2013-10-20T17:00:55.447 に答える