私はこれをYouTubeビデオからコーディングしました.彼はそれをうまくやっているように見えました.
#!/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()
プログラムを実行すると、次のエラーが表示されます。
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
これが何を意味するのか、どのように修正するのかわかりません
これが修正でした
2 つの問題があります。1 つ目は、引用符で囲み 、表面ではなく
back.png
文字列にすることです。2 つ目は、rect の代わりに 2 番目の引数にタプルを配置することです。最初の引数を修正するには、 . 2 番目を修正するには、 を使用して背景の rect を取得します。あなたの行は次のようになります。(str)
(pygame.Surface)
(pygame.Rect).
"background.png"
backgroudfile.get_rect()
screen.blit(backgroundfile, backgroundfile.get_rect()
前に backgroundfile をサーフェス オブジェクトとして保存していないため、これだけでは機能しません。それ以外の
backgroundfile = "back.png"
置く
backgroundfile = pygame.image.load("back.png")
"back.png"
が同じフォルダにファイルとして保存されている場合、これはサーフェスを返します。もう一方のロードされたイメージで同じことを行います。これらすべてを実行すると、プログラムが機能するはずです。