pygame 为什么飞船只能左右移动不能上下移?
import pygame
import sys

def run_game():
    pygame.init()
    screen=pygame.display.set_mode((1200,600))
    pygame.display.set_caption("game over")


    image=pygame.image.load('selfimages/airplane.bmp')
    rect=image.get_rect()
    screen_rect=screen.get_rect()

    rect.centerx=screen_rect.centerx
    rect.centery=screen_rect.centery
    xcenter=float(rect.centerx)
    ycenter=float(rect.centery)

    moving_right=False
    moving_left=False
    moving_down=False
    moving_up=False

    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
            elif event.type==pygame.KEYDOWN:
                if event.key==pygame.K_RIGHT:
                    moving_right=True

                elif event.key==pygame.K_LEFT:
                    moving_left=True

                elif event.key==pygame.K_UP:
                    moving_up=True

                elif event.key==pygame.K_DOWN:
                    moving_dowm=True
            elif event.type==pygame.KEYUP:
                if event.key==pygame.K_RIGHT:
                    moving_right=False

                elif event.key==pygame.K_LEFT:
                    moving_left=False

                elif event.key==pygame.K_UP:
                    moving_up=False

                elif event.key==pygame.K_DOWN:
                    moving_dowm=False

        if moving_right and rect.right<screen_rect.right:
            xcenter+=1.5
        if moving_left and rect.left>0:
            xcenter-=1.5
        if moving_up and rect.top<screen_rect.top:
            ycenter+=1.5
        if moving_down and rect.bottom>0:
            ycenter-=1.5

        rect.centerx=xcenter
        rect.centery=ycenter

        screen.fill((255,255,255))
        screen.blit(image,rect)
        pygame.display.flip()


run_game()

麻烦帮我看看问题出在哪,谢谢大家

3个回答

moving_dowm=True 你写错字母了

虽然没能帮楼主解决你的问题,但是看到你的代码我就明白为什么我的不能同时上下移动了,谢谢!

你的y轴边框位置写反了,在Pygame,原点(0, 0)位于屏幕左上角,向右下方移动时,坐标值将增大

   if moving_down and rect.bottom<screen_rect.bottom:
            ycenter+=1.5
   if moving_up and rect.top>0:
            ycenter-=1.5
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问