2013-06-22 5 views
1

J'ai cette image-objet qui est contrôlée avec les touches fléchées, mais ne restera pas dans les limites des écrans. Pour une raison quelconque, il s'arrête seulement à l'extrémité gauche, mais pas en haut, en bas et à droite.Garder une image-objet dans la fenêtre Pygame

Voici ce que j'ai jusqu'à présent:

if self.rect.right == screen.get_rect().right: 
    self.rect.right = self.rect.right - 10 
if self.rect.left == screen.get_rect().left: 
    self.rect.right = self.rect.right + 10 
if self.rect.top == screen.get_rect().top: 
    self.rect.top = self.rect.top - 10 
if self.rect.bottom == screen.get_rect().bottom: 
    self.rect.bottom = self.rect.bottom + 10 

Répondre

2

Vous pouvez utiliser clamp_ip, qui déplace le rect tant qu'il est dans l'autre rect

3

Il est très probablement parce que vous comparez avec ==. Les coordonnées augmentent de plus d'une unité à la fois, de sorte qu'elles peuvent sauter d'en bas à la limite et atteindre des valeurs plus grandes. Essayez:

if self.rect.right > screen.get_rect().right: 
    self.rect.right = screen.get_rect().right 
... 
Questions connexes