首页 > 解决方案 > 在我的 pong remake 中,我的桨没有在 python 中移动

问题描述

我改变了我的代码的方式,现在我的桨停止移动。有谁知道为什么?忽略球,现在,我还没有完成编码。在我改变我的代码之前,我没有定义我的形状,我只是画了它们。现在我定义了它们,什么都不会移动。我只包含了相关代码。

    rectY1 = 240
    rectY2 = 240
    Y1change = 0
    Y2change = 0
    ballX = 320
    ballY = 240
    ballXvel = 0
    ballYvel = 0
    paddle1 = pygame.Rect(18,rectY1,10,120)
    paddle2 = pygame.Rect(620,rectY2,10,120)
    ball = pygame.Rect(ballX,ballY,30,30)
    def drawshapes():   
        pygame.draw.rect(DISPLAY, WHITE, paddle1)
        pygame.draw.rect(DISPLAY, WHITE, paddle2)
        pygame.draw.rect(DISPLAY, WHITE, ball)
    DISPLAY = pygame.display.set_mode((640,480),0,32)
    while True:
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                sys.exit()
            if event.type == KEYDOWN :
                if event.key == K_SPACE :
                    ballXvel += 10
                    ballYvel += 10
        keys = pygame.key.get_pressed()

        Y1change = 0
        Y2change = 0
    #make paddles move
        if keys[K_UP]:
            Y2change -= 10

        if keys[K_DOWN]:
            Y2change += 10

        if keys[ord('w')]:
            Y1change -= 10

        if keys[ord('s')]:
            Y1change += 10
    #stop paddles at edges 
        if rectY1 < 5 :
            rectY1 = 5
        if rectY1 > 355 :
            rectY1 = 355
        if rectY2 < 5 :
            rectY2 = 5
        if rectY2 > 355 :
            rectY2 = 355

        ballX += ballXvel
        ballY += ballYvel
        rectY1 += Y1change
        rectY2 += Y2change
        DISPLAY.fill(BLACK)
        drawshapes()
        pygame.display.update()
        fpsClock.tick(FPS)

标签: pythonpygamepong

解决方案


该代码永远不会更新 Paddle rect。当然rectY1rectY2已更新,但这从未应用于paddle1and paddle2

之前drawshapes(),将更改应用到桨矩形:

    rectY1 += Y1change
    rectY2 += Y2change
    paddle1.y = rectY1   # <-- HERE - Update the paddle's rect
    paddle2.y = rectY2   #            which is used to draw it
    DISPLAY.fill(BLACK)

但我认为如果你的代码直接在等上跟踪更改会更paddle1.x简单paddle1.y


推荐阅读