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 (将#修改为@)