import pygame, random
pygame.init()
screen = pygame.display.set_mode((700,500))
ball = pygame.image.load('C://python32/ball.jpg')
brick = pygame.image.load('C://python32/brick.jpg')
rect1 = ball.get_rect()
rect2 = brick.get_rect()
screen.fill((255,255,198))
screen.blit(ball,rect1)
screen.blit(brick,rect2)
pygame.display.flip()
if rect1.colliderect(rect2):
x=random.randrange(0,550)
y=random.randrange(0,350)
rect2.move(x,y) #<-------This part
pygame.display.flip()
我有2个图像球和砖。当我在pygame上加载它们时,2个图像发生碰撞。所以if rect1.colliderect(rect2)应该可行。我测试通过put是一个打印功能。但是rect2.move不起作用它不会显示pygame的变化。有什么问题?
答案 0 :(得分:1)
pygame.Rect.move
使用新位置创建一个新的rect对象,如果要稍后使用它,则必须将其分配给变量。
如果您只想修改现有的rect,可以调用move_ip
方法(ip代表就地),这样rect仍然是具有新位置的同一对象。