2014-02-13 130 views
1

我對pygame腳本世界比較陌生,在編寫遊戲時需要幫助:它將成爲玩家從起點移動到達終點的迷宮。移動.png離開屏幕

我決定從基礎開始,創建一個窗口,其中字符(.png文件)在按下數字鍵盤鍵時移動。

問題是,當我的.png到達屏幕時,它會移動。 如何防止它脫離屏幕? (PS:我想,如果可能的話,我不需要上課的解決方案,我絕對討厭這些,我也不喜歡他們)

下面是我寫的代碼到目前爲止:

進口librairies/importating庫

import pygame 
from pygame.locals import * 


pygame.init() 

pygame.time.Clock().tick(30) 

F1=pygame.display.set_mode((640, 480), RESIZABLE) # création fenêtre/creating main window 

bg=pygame.image.load("background.jpg").convert() # chargement et conversion de l'image/loading and converting picture 
F1.blit(bg, (0,0)) #collage de l'image de fond/sticking background 
pygame.display.flip() # raffraichissement écran/refreshing screen 

perso=pygame.image.load("perso.png").convert_alpha() 
F1.blit(perso, (0,0)) 
pygame.display.flip() 

F1_rect=F1.get_rect() 
position=perso.get_rect() 
F1.blit(perso, position) 

pygame.display.set_caption("Deadalus V 0.0.0.1") 

continuer = 1 # création d'une boucle infinie/creating main loop 

pygame.key.set_repeat(1,1) 
while continuer: 
     for event in pygame.event.get(): 
      if event.type == QUIT: 
       continuer = 0 
      if event.type == KEYDOWN: 
       if event.key == K_KP2: 
        position = position.move(0,3) 
       if event.key == K_KP5: 
        position = position.move(0,-3) 
       if event.key == K_KP1: 
        position = position.move(-3,0) 
       if event.key == K_KP3: 
        position = position.move(3,0) 
     F1.blit(bg, (0,0)) 
     F1.blit(perso, position) 

     pygame.display.flip() 
+0

您需要一些條件來檢查玩家位置的表示和遊戲區域的邊界。我認爲遲早你會需要類來幫助抽象(除非,*也許*,你是一個函數式編程專家。)類將會很方便學習 - 你需要最終對它們感到滿意。 – BlackVegetable

+0

感謝您的回答。你知道在哪裏可以找到一個關於如何使用類的完整教程嗎? – MaxFR68

+0

這幾乎是標準教程,雖然我確信Google搜索會給你更多:http://docs.python.org/2/tutorial/classes.html – BlackVegetable

回答

0

只需使用clamp

position.clamp_ip(F1_rect) 

這樣,你的位置矩形將是百達內F1_rect。

+0

它的工作原理!非常感謝 ! (雖然我想我會回來一些其他問題;) – MaxFR68