2015-05-26 334 views
1

Pygame的設定界限我必須用我的屏幕設置:屏幕尺寸

DisplayHeight = 0 
DisplayWidth = 0 

pygame.display.set_mode = ((DisplayWidth, DisplayHeight), pygame.FULLSCREEN) 

再後來,當我嘗試使用設置的界限:

if imgx <= DisplayWidth: 
    Right = False 
    Left = False 

if imgy <= DisplayHeight: 
    Up = False 
    Down = False 

這導致了兩個問題。 1.只有當我點擊屏幕左側或頂部時,圖像纔會停止。任何其他方式,只是繼續前進。

  1. 當圖像停在點時,它會停下來,如果有人開始按下按鈕將它們朝向那個方向,它仍然會這樣,除非你必須只需保持按鈕混合,你就可以以這種方式離開屏幕。

我試過找到這個問題的答案,但是我找不到任何信息。

+0

請發佈一些額外的信息,例如與控制和移動圖片相關的源代碼。您提供的代碼與上下文無關,並未提供該問題的清晰畫面。 – bcdan

回答

-1

DisplayHeight = 0 
DisplayWidth = 0 

pygame.display.set_mode = ((DisplayWidth, DisplayHeight), pygame.FULLSCRE 

一個總是在Python

-1

這裏的任何版本的工作對我來說是一些代碼,可能是你的問題提供幫助。看起來你對圖像的運動沒有適當的限制。一定要有像0 <= current_pos + image_dimension +/- increment <= display_size這樣的限制。

DisplayHeight = 500 
DisplayWidth = 800 

vertical_increment = 10 
horizontal_increment = 10 

img = pygame.image.load('image/path') 
imgx = 0 
imgy = 0 
imgw = image.get_width() 
imgh = image.get_height() 

while 1: 
    key = function to get key 
    if key == 'up': 
    if imgy - vertical_increment >= 0: 
     move_image('up') 
    elif key == 'down': 
    if imgy + imgh + vertical_increment <= DisplayHeight: 
     move_image('down') 
    #corresponding code for horizontal 

一般情況下,當您發佈的問題,請更詳細的源代碼,這樣其他用戶可能能夠準確,高效地回答你的問題,並想盡可能少。

我希望這會有所幫助。

1

你的變量DisplayHeightDisplayWidth都設置爲0,使你的代碼

if imgx <= DisplayWidth: 
    Right = False 
    Left = False 

if imgy <= DisplayHeight: 
    Up = False 
    Down = False 

只是檢查是否imgximgy0小。


另外,代替

pygame.display.set_mode = ((DisplayWidth, DisplayHeight), pygame.FULLSCREEN) 

你可能想用

pygame.display.set_mode((DisplayWidth, DisplayHeight), pygame.FULLSCREEN) 

因爲set_mode是一個函數。


如果你想阻止一個移動物體離開畫面,可以考慮使用clampclamp_ip功能:

夾()
移動內部另一
矩形clamp(Rect) -> Rect Returns
一個新的矩形被移動到完全在參數內Rect。如果矩形太大而無法放入內部,它會在參數Rect中居中 ,但其大小不會更改。

所以像

your_rect.clamp_ip(the_rect_of_the_screen) 

一行就足以確保your_rect從未離開the_rect_of_the_screen

+0

那麼,如何在屏幕上播放與我自己不同的尺寸? –