如何解决Sprite 在 pygame 中没有向左移动
我是编码新手,请耐心等待。我有两个精灵:一个在左边,一个在右边。它们应该使用 WASD 键(左侧)和箭头键(右侧)移动。它们都可以正常移动,只是右边的精灵没有用左键向左移动。
这是我的代码!如果我能得到任何帮助,我将不胜感激。
import pygame
import os
pygame.init()
#window
WIDTH,HEIGHT= 900,500
WIN = pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Bugaboo")
#color
PEACH = (100,250,125)
BLACK=(0,0)
BORDER = pygame.Rect(WIDTH/2-5,2,HEIGHT)
#speed (fps)
FPS = 60
VEL = 5
HOBBIT_WIDTH,HOBBIT_HEIGHT = 150,100
EYE_WIDTH,EYE_HEIGHT = 100,100
#IMAGE FILE
FRodo = pygame.image.load(os.path.join('Assets','frodo.png'))
FRodo = pygame.transform.scale(FRodo,(HOBBIT_HEIGHT,HOBBIT_WIDTH))
SAURON = pygame.image.load(os.path.join('Assets','sauron.png'))
SAURON = pygame.transform.scale(SAURON,(EYE_HEIGHT,EYE_WIDTH))
#WINDOW
def draw_window(hobbit,eye):
WIN.fill(PEACH)
pygame.draw.rect(WIN,BLACK,BORDER)
#yellow.x,yellow.y
WIN.blit(FRodo,(hobbit.x,hobbit.y))
#red.x,red.y
WIN.blit(SAURON,(eye.x,eye.y))
pygame.display.update()
def hobbit_movement(keys_pressed,hobbit):
if keys_pressed[pygame.K_a] and hobbit.x + VEL > 0 : # left
hobbit.x -= VEL
if keys_pressed[pygame.K_d] and hobbit.x - VEL + hobbit.width < BORDER.x : # right
hobbit.x += VEL
if keys_pressed[pygame.K_w] and hobbit.y + VEL > 0: # up
hobbit.y -= VEL
if keys_pressed[pygame.K_s] and hobbit.y - VEL + hobbit.height < HEIGHT - 15: # down
hobbit.y += VEL
def eye_movement(keys_pressed,eye):
if keys_pressed[pygame.K_LEFT] and eye.x + VEL > 0 : # left
eye.x -= VEL
if keys_pressed[pygame.K_RIGHT] and eye.x - VEL + eye.width < BORDER.x : # right
eye.x += VEL
if keys_pressed[pygame.K_UP] and eye.y + VEL > 0: # up
eye.y -= VEL
if keys_pressed[pygame.K_DOWN] and eye.y - VEL + eye.height < HEIGHT - 15: # down
eye.y += VEL
#MAIN
def main():
hobbit = pygame.Rect(50,100,HOBBIT_WIDTH,HOBBIT_HEIGHT)
eye = pygame.Rect(600,EYE_WIDTH,EYE_HEIGHT)
clock = pygame.time.Clock()
run=True
while run:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run=False
keys_pressed = pygame.key.get_pressed()
#"hobbit movement"
hobbit_movement(keys_pressed,hobbit)
#eye movement
eye_movement(keys_pressed,eye)
draw_window(hobbit,eye)
pygame.quit()
#IDK WHAT THIS IS
if __name__ == "__main__":
main()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。