直接移动不起作用

时间:2017-06-06 05:43:07

标签: pygame rect

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的变化。有什么问题?

1 个答案:

答案 0 :(得分:1)

pygame.Rect.move使用新位置创建一个新的rect对象,如果要稍后使用它,则必须将其分配给变量。

如果您只想修改现有的rect,可以调用move_ip方法(ip代表就地),这样rect仍然是具有新位置的同一对象。