Python Pygame的第一个简单游戏出错
嗨,我是新来的,我刚刚完成了代码学院课程和pygame教程中的黑猩猩拳游戏。我使用的几乎是一个游戏的复制品,但我试图在屏幕底部显示一个平面,而不是拳头。我的Userplane类不断抛出以下错误,我不知道为什么,'typeerror:'nonetype'对象不可编辑原因在于loadimage函数 它不会返回加载的图像,因此python抱怨您试图从非类型分配Python Pygame的第一个简单游戏出错,python,pygame,Python,Pygame,嗨,我是新来的,我刚刚完成了代码学院课程和pygame教程中的黑猩猩拳游戏。我使用的几乎是一个游戏的复制品,但我试图在屏幕底部显示一个平面,而不是拳头。我的Userplane类不断抛出以下错误,我不知道为什么,'typeerror:'nonetype'对象不可编辑原因在于loadimage函数 它不会返回加载的图像,因此python抱怨您试图从非类型分配self.image,self.rect 在Python中,如果函数不返回任何内容,则假定它不返回任何内容。您的回溯在哪里?错误发生在哪一行?我
self.image,self.rect
在Python中,如果函数不返回任何内容,则假定它不返回任何内容。您的回溯在哪里?错误发生在哪一行?我在pygame.event.get()中猜测事件的
:
,但我想确定。loadimage()
可能因为找不到图像文件而失败。或者找到了图像,但从未返回。是否“打印”加载图像失败“消息是否打印将区分这两个潜在问题。是的,但我不认为OP会发布这条消息,如果他看到错误消息的话。很难说清楚,因为两者都会导致相同的TypeError
,因为您指出了更基本的问题。我想我不应该在最初的评论中说“可能”。
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()