我正在尝试将我在最右上角创建的矩形向下和向左移动。我已注释掉导致错误的行,即: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)
有什么建议吗?提前谢谢!
最佳答案
方法pygame.Rect.move_ip
不返回任何值。它修改pygame.Rect
对象本身。
所以之后
textrect = textrect.move_ip(-50, -50)
textrect
的值为None
。进一步注意,a
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)