我不能让clamp工作。我认为clamp是将一个rect放在另一个rect中,但是下面的尝试没有将蓝色的球放入红色的rect中。问题出在哪里?
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()发布于 2016-03-21 16:28:37
clamp返回一个新的Rect,而不改变源Rect本身。
如果您想要更改源Rect,则必须使用clamp_ip。
但这对您来说还不够,因为您直接在屏幕表面上绘制圆,而更改结果Rect不会做任何事情:
您必须创建一个新的Surface,在其上绘制您的圆,并从该Surface (或任何其他用于绘图的Rect,但最简单的方法是使用get_rect()函数)获取一个Rect。
然后对该Rect做任何你想做的事情,例如使用clamp_ip或使用clamp获取一个新的Rect,然后将该Rect(或新的)与blit函数(例如TV.blit(the_new_surface, the_rect) )一起使用。
https://stackoverflow.com/questions/36119653
复制相似问题