Dim*_*uid 4 python linux pygame raspberry-pi
我从 youtbe 视频中编码了这个,他似乎做得很好,但当我尝试时,我在底部收到错误消息,我很困惑,我需要帮助。
#!/usr/bin/env python
import pygame, sys
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((370, 572), 0, 32)
backgroundfile = "back.png"
mousefile = "mouse.png"
back = pygame.image.load(backgroundfile).convert()
mouse = pygame.image.load(mousefile).convert_alpha()
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
#Now we have initialized everything lets start with the main part
screen.blit("back.png", (0,0))
pygame.display.flip()
Run Code Online (Sandbox Code Playgroud)
当我运行该程序时,我收到错误:
Traceback (most recent call last):
File "Tutorial 5 First game.py", line 26, in <module>
screen.blit("back.png", (0,0))
TypeError: argument 1 must be pygame.Surface, not str
Run Code Online (Sandbox Code Playgroud)
我不确定这意味着什么或如何解决
这就是修复方法
你有两个问题。首先是在周围加上引号
back.png,使其成为字符串(str)而不是表面(pygame.Surface)。第二个是为第二个参数放置一个元组而不是一个矩形(pygame.Rect).要修复第一个,只需将背景文件(您之前将表面保存为)而不是"background.png". 要解决第二个问题,请使用backgroudfile.get_rect()获取背景的矩形。你的线路应该是:
screen.blit(backgroundfile, backgroundfile.get_rect()这本身不起作用,因为您之前没有将背景文件保存为表面对象。代替
backgroundfile = "back.png"放
backgroundfile = pygame.image.load("back.png")"back.png"如果将其保存为同一文件夹中的文件,这将返回一个表面。对其他加载的图像执行相同的操作。完成所有这些操作,您的程序就应该可以运行了。
你有两个问题。首先是在 周围加上引号back.png,使其成为字符串 (str) 而不是表面 (pygame.Surface)。第二个是你为第二个参数放置一个元组而不是一个矩形(pygame.Rect)。要解决第一个问题,只需输入backgroundfile(您之前将曲面保存为的内容)而不是"background.png". 要解决第二个问题,请使用backgroudfile.get_rect()获取背景的矩形。你的线路应该是:
screen.blit(backgroundfile, backgroundfile.get_rect()
Run Code Online (Sandbox Code Playgroud)
这本身不起作用,因为您之前没有将背景文件保存为表面对象。代替
backgroundfile = "back.png"
Run Code Online (Sandbox Code Playgroud)
放
backgroundfile = pygame.image.load("back.png")
Run Code Online (Sandbox Code Playgroud)
如果“back.png”作为文件保存在同一文件夹中,这将返回一个表面。对其他加载的图像执行相同的操作。完成所有这些操作,您的程序就应该可以运行了。
| 归档时间: |
|
| 查看次数: |
30165 次 |
| 最近记录: |