2017-04-26 58 views
1

我是StackOverflow的新手,在日常生活中我幫朋友做一些編程。Pygame窗簾動畫無效

所以我有一個問題給你,我有一個窗簾背景除以兩個圖片,我想當我按下向下鍵打開一個小小的窗簾。所以這裏是我的代碼,我不知道它爲什麼不起作用,它使我瘋了:/。


    import pygame 
    from pygame.locals import *

pygame.init() 


fenetre = pygame.display.set_mode((700, 420)) 


fond1 = pygame.image.load("cpart1.jpg").convert_alpha() 
fond2 = pygame.image.load("cpart2.jpg").convert_alpha() 

fenetre.blit(fond1, (350,0)) 
fenetre.blit(fond2,(0,0)) 

pos_fond1 = 350 
pos_fond2 = 0 


pygame.display.flip() 


continuer = 1 
while continuer: 
     for event in pygame.event.get():     
      if event.type == QUIT:      
       continuer = 0  
      if event.type == KEYDOWN : 
        if event.type == K_DOWN: 
          pos_fond1 = pos_fond1 - 20 
          pos_fond2 = pos_fond2 + 20 


    fenetre.blit(fond1, (pos_fond1,0)) 
    fenetre.blit(fond2, (pos_fond2,0)) 

    pygame.display.flip() 
    pygame.display.update() 

所以我不知道我動的x位置內的對象,我不知道發生了什麼不工作。你能幫助我的人StackOverflow。

+1

'如果event.type = = K_DOWN'應該是'if event.key == K_DOWN'。當你有這個小代碼時,嘗試用不同的文件重寫程序(不需要複製),你很可能會解決由於錯誤而導致的問題。它會幫你找到一個比在這裏定位更快的答案。另外,請儘量在代碼中使用英文,否則當代碼變得更大時,其他人可能很難幫助您。 –

+0

感謝兄弟,下次我會在提問之前正確閱讀我的代碼。 –

+0

現在你已經回答了你在這裏發佈的問題,並且可以第一次接受答案(你必須點擊'V')。爲了讓它升溫,你需要更多的聲望點(如果我知道的話,15點),但是你的投票將會在稍後排隊。 Bonjour和歡迎來到stackoverflow :)。 – Claudio

回答

0

下面的代碼可以在任何KEYDOWN上移動兩張圖片。取消對打印()命令來獲取有關事件的一些見解回事(來自德國的問候法國:)這裏windowFenster相當接近fenetre這意味着Pygame的display):

import pygame 
from pygame.locals import * 

pygame.init() 
fenetre = pygame.display.set_mode((700, 420)) 

fond1 = pygame.image.load("cpart1.jpg").convert_alpha() 
fond2 = pygame.image.load("cpart2.jpg").convert_alpha() 

fenetre.blit(fond1, (350,0)) 
fenetre.blit(fond2,(0,0)) 

pos_fond1 = 350 
pos_fond2 = 0 

pygame.display.flip() 

continuer = 1 
while continuer: 
    for event in pygame.event.get(): 
     # print(event)   
     if event.type == QUIT:      
      continuer = 0  
     if event.type == KEYDOWN : 
      # print("KEYDOWN") 
      pos_fond1 = pos_fond1 - 20 
      pos_fond2 = pos_fond2 + 20 

    fenetre.blit(fond1, (pos_fond1,0)) 
    fenetre.blit(fond2, (pos_fond2,0)) 

    pygame.display.flip() 
    pygame.display.update() 
+0

Danke che,來自法國的Halo;)! –