在pygame中移动图像?

时间:2016-01-14 04:44:42

标签: python pygame

所以,我正在用pygame制作我的第一个游戏,并且到目前为止已经做好了。我只是无法移动图像。我能帮忙吗?

mc_x = 20

mc_y = 20

spider_x = 690

spider_y = 500


while True:

for event in pygame.event.get():

    if event.type == pygame.QUIT:

        pygame.quit()

        sys.exit()

    elif event.type == pygame.KEYDOWN:
        if event.key == pygame.K_LEFT:
            mc_x -= 5
        elif event.key == pygame.K_RIGHT:
            mc_x += 5

        elif event.key == pygame.K_UP:
            mc_y += 5
        elif event.key == pygame.K_DOWN:
            mc_y -= 5


screen.blit(background,(0,0))#fixed
screen.blit(spider_small,(spider_x,spider_y))#FIXED
screen.blit(mc,(mc_x,mc_y))

pygame.display.update()

2 个答案:

答案 0 :(得分:1)

根据您的代码:

screen.blit(mc,(mc_x,mc_y))

pygame.display.update()

应位于循环内部,以便每次按键时都会更新/刷新游戏。

答案 1 :(得分:0)

您忘记更新屏幕了。在主游戏循环中设置更新功能。这样可以正常工作!

这是我的示例代码

import pygame
pygame.init()

WHITE = (255, 255, 255)
RED = (255, 0, 0)

canvas = pygame.display.set_mode((800, 600))
pygame.display.set_caption('Example')

gameExit = False
lead_x, lead_y = 300, 300

while not gameExit:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            gameExit = True
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_LEFT:
            lead_x -= 10
        elif event.key == pygame.K_RIGHT:
            lead_x += 10
        elif event.key == pygame.K_DOWN:
            lead_y += 10
        elif event.key == pygame.K_UP:
            lead_y -= 10

    canvas.fill(WHITE)
    pygame.draw.rect(canvas, RED, [lead_x, lead_y, 30, 30])
    pygame.display.update()

pygame.quit()
quit()