Python 3.x TypeError:参数1必须是pygame.Surface,而不是元组

Python 3.x TypeError:参数1必须是pygame.Surface,而不是元组,python-3.x,pygame-surface,Python 3.x,Pygame Surface,我是Stack Overflow的新用户,我的问题是如果我运行代码,它会给我错误,错误显示: DISPLAYSURF.blitcaimg,dogImg,catx,caty,dogx,dogy TypeError:参数1必须是pygame.Surface,而不是元组 如何解决此问题?非常感谢您的回答!谢谢 我试着用谷歌搜索,但他们的答案和我的不同 import pygame, sys from pygame.locals import * pygame.init() FPS = 30 fpsC

我是Stack Overflow的新用户,我的问题是如果我运行代码,它会给我错误,错误显示:

DISPLAYSURF.blitcaimg,dogImg,catx,caty,dogx,dogy TypeError:参数1必须是pygame.Surface,而不是元组

如何解决此问题?非常感谢您的回答!谢谢

我试着用谷歌搜索,但他们的答案和我的不同

import pygame, sys
from pygame.locals import *

pygame.init()

FPS = 30
fpsClock = pygame.time.Clock()

DISPLAYSURF = pygame.display.set_mode((500, 500), 0, 32)
pygame.display.set_caption('Cat and Dog running.')

WHITE = (255, 255, 255)
catImg = pygame.image.load('cat.png')
dogImg = pygame.image.load('dog.png')
catx = 50
caty = 50
dogx = 25
dogy = 25
direction = 'right'

running = True
while running:
DISPLAYSURF.fill(WHITE)

if direction == 'right':
    catx += 5
    dogx += 5
    if catx == 250 and dogx == 250:
        direction = 'down'
elif direction == 'down':
    caty += 5
    dogy += 5
    if caty == 225 and dogy == 225:
        direction = 'left'
elif direction == 'left':
    catx -= 5
    dogx -= 5
    if catx == 10 and dogx == 10:
        direction = 'up'
elif direction == 'up':
    caty -= 5
    dogy -= 5
    if caty == 10 and dogy == 10:
        direction = 'right'

DISPLAYSURF.blit((catImg, dogImg), (catx, caty, dogx, dogy))

for event in pygame.event.get():
    if event.type == QUIT:
        pygame.quit()
        sys.exit()

pygame.display.update()
fpsClock.tick(FPS)

您唯一的问题是,您正试图通过一次调用将两个图像快速发送到表面。将BLIT分为两个不同的调用将解决您的问题:

无法通过一个调用blit两个不同的图像 DISPLAYSURF.blitcaimg,dogImg,catx,caty,dogx,dogy 相反,使用两个电话 DISPLAYSURF.blitcaimg、catx、caty DISPLAYSURF.blitdoggim,dogx,dogy 此外,您可能需要调整输入的图像的大小。正如您所拥有的,您的代码将以其本机分辨率拍摄图像,这意味着它们可能太大或太小。您可以使用pygame.transform.scaleimg和imgSize这样做:

此外,您可能需要调整所用图像的大小: imgSize=300300 catImg=pygame.transform.scalepygame.image.load'cat.png',imgSize dogImg=pygame.transform.scalepygame.image.load'dog.png',imgSize 资料来源: