我正在使用Python 2.7。我只能使用海龟模块来创建游戏。我的 1920 x 1080显示器可以完美地缩放所有图像,动画播放效果很好,但 1280 x 720显示器 (例如)图像无法正确缩放。我正在使用turtle.shape()
作为图片。我该如何解决这个问题?
我添加了图片
和video进一步解释问题。
正如您所看到的那样,图标重叠,图像反弹回来,而不是直接反射。
这是我定义屏幕尺寸的方式:
screen_width = ctypes.windll.user32.GetSystemMetrics(0) - ctypes.windll.user32.GetSystemMetrics(0) / 4
screen_height = ctypes.windll.user32.GetSystemMetrics(1) - ctypes.windll.user32.GetSystemMetrics(1) / 4
答案 0 :(得分:0)
我无法在我的环境中完成测试,也无法使用您的代码。我们的想法是使用虚拟坐标,因此缩放是在统一处理各个图形元素的级别完成的:
import turtle
VIRTUAL_ASPECT_RATIO = 1.8
VIRTUAL_WIDTH = 2000
VIRTUAL_HEIGHT = VIRTUAL_WIDTH / VIRTUAL_ASPECT_RATIO
screen_width = 3 * ctypes.windll.user32.GetSystemMetrics(0) / 4
screen_height = 3 * ctypes.windll.user32.GetSystemMetrics(1) / 4
# attempt to adjust the real window to match the virtual aspect ratio
if screen_width / VIRTUAL_ASPECT_RATIO < screen_height:
screen_height = screen_width / VIRTUAL_ASPECT_RATIO
elif screen_height * VIRTUAL_ASPECT_RATIO < screen_width:
screen_width = screen_height * VIRTUAL_ASPECT_RATIO
else:
pass # probably need to do something where we adjust both
screen = turtle.Screen()
screen.setup(screen_width, screen_height) # size the real window
screen.setworldcoordinates(-VIRTUAL_WIDTH/2, -VIRTUAL_HEIGHT/2, VIRTUAL_WIDTH/2, VIRTUAL_HEIGHT/2) # virtual coordinates
yertle = turtle.Turtle()
yertle.circle(100)
turtle.mainloop()
请告诉我们以上内容如何为您服务。