2016-01-14 93 views
0

所以,我在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() 

回答

1

基於您的代碼:

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

pygame.display.update() 

應該是內循環,這樣它會更新/刷新您的遊戲每個按鍵。

+0

感謝您的幫助 –

+0

不客氣,很高興幫助:) – angbargas

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()