【问题标题】:pygame screen automatically doubledpygame屏幕自动翻倍
【发布时间】:2019-08-19 05:47:35
【问题描述】:

我使用 Pygame 绘制了多个图案,我的屏幕宽度是 40,高度也是 40,但问题是当我运行我的代码时,我的屏幕尺寸会自动翻倍。

import pygame

pygame.init()
size = [40, 40]
screen = pygame.display.set_mode(size)
pygame.display.get_window_size()
pygame.display.set_caption("Example code for the draw module")
done = False
clock = pygame.time.Clock()

while not done:
    clock.tick(10)    
    for event in pygame.event.get():  # User did something
        if event.type == pygame.QUIT:  # If user clicked close
           done = True
    screen.fill((168,168,168))
    pygame.draw.ellipse(screen,(192,192,192) , [30, 20, 15, 10], 2)
    fname = "shape1.png"
    pg.image.save(screen, fname)
    print("file {} has been saved".format(fname))
    pygame.display.flip()
pygame.quit()`

【问题讨论】:

  • 您是否有可能拥有高 DPI 显示器?

标签: python python-3.x pygame


【解决方案1】:

您使用了数组(如方括号 [] 所示)而不是元组(括号 ())。元组是不可变的,这意味着它们不能更改。

但是,我不需要更改此设置。您的代码的基础似乎工作正常。它似乎没有改变我的大小。你在其他电脑上也测试过吗?这是整个代码吗? 发生的唯一错误是在pygame.display.get_window_size() 行中。

import pygame
pygame.init()
size = (40, 40)
screen = pygame.display.set_mode(size) 
print(pygame.display.get_surface().get_size())
pygame.display.set_caption("Example code for the draw module")
done = False
clock = pygame.time.Clock()

while not done:
    clock.tick(10)    
    for event in pygame.event.get():  # User did something
        if event.type == pygame.QUIT:  # If user clicked close
           done = True
    screen.fill((168,168,168))
    pygame.draw.ellipse(screen,(192,192,192) , [30, 20, 15, 10], 2)
    fname = "shape1.png"
    pygame.image.save(screen, fname)
    print("file {} has been saved".format(fname))
    pygame.display.flip()
pygame.quit()

【讨论】:

  • 感谢贡献,我的代码实际运行没有错误,但问题是40x40尺寸的显示屏看起来像一个矩形,我认为应该是方形显示屏。跨度>
猜你喜欢
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2018-05-18
相关资源
最近更新 更多