Pygame - странный след, происходящий даже при том, что я обновляю свое изображение.В чем дело? - PullRequest
0 голосов
/ 04 декабря 2018

Изображение происходящего

Привет, ребята, так что я новичок в Pygame, и я пытаюсь сделать что-то довольно простое.Просто переместите изображение по экрану.Я делал это раньше, и у меня не было этой проблемы.Единственное изменение, которое я сделал, - это то, что я теперь перетаскиваю 1 изображение поверх другого.

По какой-то странной причине это приводит к тому, что след остается позади.

Я пытался очистить экран и перерисовать и не дал никаких положительных результатов.

Любая помощь будет оценена.

def main():

    pygame.init()
    screen = pygame.display.set_mode((700,680),0,32)
    clock = pygame.time.Clock()

    bgd_image = pygame.image.load("Grid.png").convert()
    #X Motor Pieces
    MotorXbase = pygame.image.load("MotorXBase.png").convert()
    MotorXbase.set_colorkey((34,177,76))
    MotorXMovePiece = pygame.image.load("MotorXMovePiece.png").convert()
    MotorXMovePiece.set_colorkey((34,177,76))


    #Y Motor Pieces
    MotorYbase = pygame.image.load("MotorYBase.png").convert()
    MotorYbase.set_colorkey((34,177,76))
    MotorYMovePiece = pygame.image.load("MotorYMovePiece.png").convert()
    MotorYMovePiece.set_colorkey((34,177,76))

    screen.fill([34,177,76])
    black = (0,0,0)
    running = True
    xpos = 16
    ypos = 14
    xstep = 1
    ystep = 1
    while running:
        screen.blit(bgd_image,(0,0))
        screen.blit(MotorXbase, [50,550])
        MotorXbase.blit(MotorXMovePiece,[xpos,18])

        screen.blit(MotorYbase, [550,50])
        MotorYbase.blit(MotorYMovePiece,[20,ypos])


        clock.tick(60)
        pygame.display.update()
        screen.fill(black)

        xpos += xstep
        ypos += ystep
        if xpos >399 or xpos <16:
            xstep = -xstep

        if ypos > 397 or ypos < 14:
            ystep = -ystep





    # event handling, gets all event from the eventqueue
        for event in pygame.event.get():
            # only do something if the event is of type QUIT
            if event.type == pygame.QUIT:
                # change the value to False, to exit the main loop
                running = False
...