求助大佬,Rect元素对齐出错解决方法
pygame吧
全部回复
仅看楼主
level 5
2w84u 楼主
rt,如何分别使两个Rect元素左侧中点与右侧中点对齐,感谢大佬。
2021年08月05日 10点08分 1
level 6
没问题啊,如果对齐不了你试试用转换的
2021年08月06日 10点08分 2
level 6
大概是文字的问题吧
2021年08月06日 10点08分 3
level 6
源码发一下
2021年08月06日 10点08分 4
已经发在下面了,还请指正
2021年08月09日 08点08分
level 5
2w84u 楼主
Main.py
2021年08月09日 08点08分 5
[喷]发完才发现图片糊了,应该能将就着看吧
2021年08月09日 08点08分
level 5
2w84u 楼主
Panels.py 问题所在模块
2021年08月09日 08点08分 6
后来移到了Celestial_body.py里了
2021年08月09日 08点08分
level 5
2w84u 楼主
Control.py
2021年08月09日 08点08分 7
level 5
2w84u 楼主
Celestial_body.py
2021年08月09日 08点08分 8
level 6
我好想找到问题了,你绘制文字的时候不是直接用rect,而是用的内部变量msg_image_rect,你直接用rect替换,msg_image_rect没有用你的_prep_msg函数刷新
2021年08月11日 10点08分 12
两天没看,不好意思回复晚了[汗]
2021年08月11日 10点08分
另外,你改了之后显示和之前一样吗?是不是文字变成在左上角了?
2021年08月11日 10点08分
level 6
还有一个,你那个文字的rect对象似乎有些问题,由于你设置的min_size,导致该rect对象的宽和高都是0,也就是说这个rect对象是一个点,而不是根据文字对象生成的,自然也用不了midleft(midleft取得的坐标是[x, y + height / 2])之类的通过自动计算得到的变量(如果不改变该rect对象的生成方式self.rect = pygame.Rect(self.loc[0], self.loc[1], self.min_s[0], self.min_s[1])这一行的话,你可以在最后blit文字的时候改用self.screen.blit(self.msg_image, [self.msg_image_rect[0], int(self.msg_image_rect[1] - self.msg_image.get_height() / 2)])来渲染居中,但只是暂行策略,不建议使用)
2021年08月11日 10点08分 14
问题已经解决了,真是太感谢了[真棒][哈哈]
2021年08月12日 10点08分
1