在Pygame 1.9.4中使用move_ip

时间:2019-02-23 13:46:11

标签: python pygame move python-3.7

我试图将在右上角创建的矩形向下和向左移动。我已注释掉导致错误的行,即:

  

blit的目的地位置无效

# render box to display level
displayfont = pygame.font.SysFont(None, 30)
text = displayfont.render('level', True, (red), (white))
textrect = text.get_rect()
textrect.topright = screen.get_rect().topright
# textrect = textrect.move_ip(-50, -50) #keeps getting invalid destination for blit
screen.blit(text, textrect)

有什么建议吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

方法pygame.Rect.move_ip不返回任何值。它会修改pygame.Rect对象本身。

所以

textrect = textrect.move_ip(-50, -50)

textrect的值为None

还要注意,Surface的右上角坐标是( widht ,0)。如果要移动到曲面的中心,则必须沿负x方向移动,但必须沿正y方向而不是负y方向移动。

要解决您的问题,必须:

displayfont = pygame.font.SysFont(None, 30)
text = displayfont.render('level', True, (red), (white))
textrect = text.get_rect()
textrect.topright = screen.get_rect().topright

textrect.move_ip(-50, 50)  

screen.blit(text, textrect)