四天后我的第三个问题,对不起。我设法让我的精灵显示感谢您的帮助,但是与以前的矩形不同,我的精灵无法再向左,向右,向上和向下移动。我不想更改精灵的外观,我只想允许它沿方向移动。
import pygame #Imports pygame
pygame.init() #Initialises pygame
win = pygame.display.set_mode((700, 700)) #Sets window size
pygame.display.set_caption("T1") #Sets title to T1
x = 400 #x character position set to 50
y = 400 #y character position set to 50
width = 64 #width set to 40
height = 64 #height set to 60
vel = 10 #Character speed set to 5
white = (255, 255, 255)
left = False
right = False
up = False
down = False
SP1R = pygame.image.load('Sprite 1 Red.png')
SP1O = pygame.image.load('Sprite 1 Orange.png')
SP1Y = pygame.image.load('Sprite 1 Yellow.png')
SP1G = pygame.image.load('Sprite 1 Green.png')
SP1B = pygame.image.load('Sprite 1 Blue.png')
SP1PU = pygame.image.load('Sprite 1 Purple.png')
SP1PI = pygame.image.load('Sprite 1 Pink.png')
SP2R = pygame.image.load('Sprite 2 Red.png')
SP2O = pygame.image.load('Sprite 2 Orange.png')
SP2Y = pygame.image.load('Sprite 2 Yellow.png')
SP2G = pygame.image.load('Sprite 2 Green.png')
SP2B = pygame.image.load('Sprite 2 Blue.png')
SP2PU = pygame.image.load('Sprite 2 Purple.png')
SP2PI = pygame.image.load('Sprite 2 Pink.png')
SP3R = pygame.image.load('Sprite 3 Red.png')
SP3O = pygame.image.load('Sprite 3 Orange.png')
SP3Y = pygame.image.load('Sprite 3 Yellow.png')
SP3G = pygame.image.load('Sprite 3 Green.png')
SP3B = pygame.image.load('Sprite 3 Blue.png')
SP3PU = pygame.image.load('Sprite 3 Purple.png')
SP3PI = pygame.image.load('Sprite 3 Pink.png')
win.fill((0, 0, 0))
pygame.display.update() #updates the display by doing the above
pygame.draw.line(win, white, [50,50], [50, 600], 5)
pygame.draw.line(win, white, [50,50], [600, 50], 5)
pygame.draw.line(win, white, [600,600], [600, 50], 5)
pygame.draw.line(win, white, [50,600], [600, 600], 5)
pygame.draw.line(win, white, [50,450], [600, 450], 5)
pygame.display.update()
UserSprite = None
while UserSprite == None:
SpriteName = input("""Choose a sprite [...]""")
UserSprite = vars()[SpriteName] if SpriteName in vars() else None
win.blit (UserSprite, (300, 500))
pygame.display.update()
pygame.display.flip()
run = True #sets run to true
while run: #While loop for above
pygame.time.delay(100) #Sets a delay to prevent crashing
for event in pygame.event.get(): #For loop for event
if event.type == pygame.QUIT: #If user quits window
run = False #Do not run
keys = pygame.key.get_pressed()#Sets keybinds
if keys[pygame.K_a] and x>55:
x -= vel
left = True
right = False
elif keys[pygame.K_d] and x <575:
x += vel
right = True
left = False
else:
right = False
left = False
if keys[pygame.K_w] and y >455:
y -= vel
up = True
down = False
elif keys[pygame.K_s] and y <565:
y += vel
down = True
up = False
pygame.quit()