Turtle Graphics - 调整要显示的形状

时间:2017-04-13 23:16:14

标签: python python-2.7 turtle-graphics

我正在使用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
  • 窗口的最终显示需要显示尺寸和 minuses除以4

1 个答案:

答案 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()

请告诉我们以上内容如何为您服务。