【问题标题】:Pygame - Is it possible to create everything in one surface and scale it down to display surface?Pygame - 是否可以在一个表面上创建所有内容并将其缩小到显示表面?
【发布时间】:2017-03-06 01:34:21
【问题描述】:

我希望使用 pygame 在屏幕上绘制几个大半径的圆。我想定义一个名为surface1 的表面大于我的显示表面(screen),并在实际尺寸中绘制我的圆圈。一旦我这样做了,我计划重新调整surface1 并将其显示在screen 上。这是我的代码:

import pygame
pygame.init()
live = True
while live:
    surface1 = pygame.Surface((7680, 4320))
    screen = pygame.display.set_mode((1280, 720))
    # pygame.display.flip()
    surface1.fill((255, 255, 255))

    pygame.draw.circle(surface1, (0, 0, 0), (3839, 2160), 4500, 10)
    surface1 = pygame.transform.scale(surface1, (1280, 720))
    surface1.convert()
    screen.blit(surface1, (0, 0))
    pygame.display.update()


    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            live = False

由于某种原因,我看不到圆圈。但是,显示窗口的颜色会根据我在surface1 中设置的内容而变化。为什么会这样?任何帮助,将不胜感激。提前致谢。

【问题讨论】:

    标签: python-2.7 pygame geometry pygame-surface


    【解决方案1】:

    圆比大表面大。 pos 参数是圆的中心,半径大于宽度和高度的一半。试着画一些更小的东西。

    此外,操纵如此巨大的表面会导致性能非常差。

    【讨论】:

    • 是的,我没注意到。谢谢。但是假设圆的半径为 1500。这是正确的逻辑吗?
    • @Syamprasad K R 是的,它适用于较小的圆圈,但由于表面大且变换帧速率会非常低。你为什么要这么做?
    • 这是为了解决一个工程问题,实际尺寸很大。我试图避免缩小所有因素。但这就是我现在正在做的事情。
    • 有趣。如果您需要更多帮助,请随时发布新问题。
    猜你喜欢
    • 2021-04-19
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 2015-05-17
    • 1970-01-01
    相关资源
    最近更新 更多