Python Pygame重新缩放游戏分辨率+;协调

Python Pygame重新缩放游戏分辨率+;协调,python,pygame,Python,Pygame,关于这一点,我搜索了很多,但似乎没有帖子回答这个具体问题。 因此,我正在制作一个pygame应用程序,对此我非常陌生。对于屏幕缩放,我使用以下代码行获取用户的屏幕信息: infoObject = pygame.display.Info() ScreenWidth = infoObject.current_w ScreenHeight = infoObject.current_h window = pygame.display.set_mode((ScreenWidth, ScreenHeight

关于这一点,我搜索了很多,但似乎没有帖子回答这个具体问题。 因此,我正在制作一个pygame应用程序,对此我非常陌生。对于屏幕缩放,我使用以下代码行获取用户的屏幕信息:

infoObject = pygame.display.Info()
ScreenWidth = infoObject.current_w
ScreenHeight = infoObject.current_h
window = pygame.display.set_mode((ScreenWidth, ScreenHeight), pygame.FULLSCREEN)
但我这里的问题是:我使用我当前的显示统计数据,但另一个用户显然可以有其他统计数据。但是,对于文本的放置,我使用了如下内容:

window.blit(text, (ScreenWidth/2 - text.get_rect().width/2, ScreenHeight*0.6))
window.blit(text, (ScreenWidth/2 - text.get_rect().width/2-500, ScreenHeight*0.6))
把它放在屏幕中间。如果分辨率改变,文本的位置也会改变

有时,我也会使用以下内容:

window.blit(text, (ScreenWidth/2 - text.get_rect().width/2, ScreenHeight*0.6))
window.blit(text, (ScreenWidth/2 - text.get_rect().width/2-500, ScreenHeight*0.6))

将文本向左移动。如果屏幕的宽度只有720(例如),它将不可见。但是,由于我在这里使用相对位置,原始布局/设计也将不再存在。有人知道我如何“重新缩放”我的游戏屏幕,让它“自动”重新缩放我的文本位置吗

这是基本代数:您缩放了屏幕中点,但没有将移动缩放到新的屏幕尺寸。由于您没有指定“我的当前显示统计数据”在实际值中的含义,所以

width_factor  = ScreenWidth  / my_current_display_width
height_factor = ScreenHeight / my_current_display_height
move_dist = 500 * width_factor
new_x = ScreenWidth/2 - text.get_rect().width/2 - 500
window.blit(text, (new_x, ScreenHeight*0.6))

我对你投入的魔法
0.6
非常怀疑;这是从哪里来的?如果这是高度系数呢?

谢谢你的回复,我想这就行了!谢谢!当你得到一个分辨率时,0.6只是“屏幕高度的60%”,请记住向上投票有用的东西并接受你最喜欢的答案(即使你必须自己写),这样堆栈溢出可以正确地存档问题。