2016-03-20 16 views
0

私はclampを動作させることができません。私はclampが別のものの中に矩形を保持すると考えていましたが、次の試行では青いボールを赤い四角の中に入れませんでした。問題はどこだ?Pygame pygame.Rect.clamp

import pygame 
from pygame.locals import * 

pygame.init() 

TV=pygame.display.set_mode((400,400)) 
pygame.display.set_caption("Rect") 

c=pygame.draw.circle(TV,(0,100,0),(150,100),100,1) 
c1=pygame.draw.circle(TV,(0,0,200),(250,250),20,1) 
r=pygame.draw.rect(TV,(100,0,0),c,1) 
c1.clamp(r) 
pygame.display.flip() 


while True: 
    for e in pygame.event.get(): 
     if e.type==QUIT: 
      pygame.quit() 
+1

'circle'は' Rect'を返します。 – amirteymuri

答えて

2

clampソースRect自体を変更せずに新しいRectを返します。

ソースRectを変更する場合は、clamp_ipを使用する必要があります。

しかし、これは、画面の表面に直接、円を描くので、あなたのために十分ではない、とresultung Rectを変更すると何もしません:

あなたは、新しいSurfaceを作成し、その上にあなたの円を描画して取得する必要がありますその(または描画に使用する他のRectですが、get_rect()関数を使用するのが最も簡単です)のRectを使用してください。

これで何でもしてください。Rectclamp_ipを使用するか、clampで新しいものを取得してからRect(または新しいもの)をblit関数と一緒に使用してください。 TV.blit(the_new_surface, the_rect)