win.display.blit(rightImg, (arrX-20,arrY-20)) AttributeError: 'pygame.表面"对象没有属性"显示"



我对python和pygame有点陌生,目前正在pygame中开发类似fnf的游戏,但当我试图制作下落箭头时,AttributeError:"pygame.Surface"对象没有显示属性。我查看了其他人的项目,但我找不到出了什么问题

import pygame, sys, random
pygame.init()
win = pygame.display.set_mode((500,500))
pygame.display.set_caption("Python Night Funkin'")
upImg = pygame.image.load("up.png")
downImg = pygame.image.load("down.png")
rightImg = pygame.image.load("right.png")
leftImg = pygame.image.load("left.png")

test = 0
x = 0
y = 0
arrX = 0
arrY = 0
height = 500
width = 500
arrHeight = 20
arrWidth = 20
arrSpeed = 5
def drawWindow():
win.fill((0,0,0))
pygame.draw.rect(win, (20,20,20), (70,370, 60, 60))
pygame.draw.rect(win, (20,20,20), (170,370, 60, 60))
pygame.draw.rect(win, (20,20,20), (270,370, 60, 60))
pygame.draw.rect(win, (20,20,20), (370,370, 60, 60))
pygame.draw.rect(win, (255, 0, 0), (x-20, y-20, 40, 40))
if arrX == 100:
win.display.blit(rightImg, (arrX-20,arrY-20))
if arrX == 200:
win.display.blit(downImg, (arrX-20,arrY-20))
if arrX == 300:
win.display.blit(upImg, (arrX-20,arrY-20))
if arrX == 400:
win.display.blit(leftImg, (arrX-20,arrY-20))
pygame.display.update()
clock = pygame.time.Clock();
run = True
arrowX = [100, 200, 300, 400]
Arrow = []
while run:
clock.tick(30);
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False

winSurface,没有display属性,而是blit函数。

所以不是

win.display.blit(rightImg, (arrX-20,arrY-20))

只需使用

win.blit(rightImg, (arrX-20,arrY-20))

等等。

最新更新