要调整显示尺寸,我将编写如下代码:
pygame.display.set_mode((1000, 500), pygame.RESIZABLE)
但是我不喜欢显示框架,所以我决定拒绝它:
pygame.display.set_mode((1000, 500), pygame.NOFRAME, pygame.RESIZABLE)
问题就从这里开始,我想按pygame窗口中的一个键或单击一个按钮来自动调整显示的大小,但是我无法自动调整pygame显示的大小。
我确实尝试过这样的代码(部分代码):
resize_y = 0 # Don't resize when the program start
console = pygame.display.set_mode((370, 500+resize_y), pygame.NOFRAME, pygame.RESIZABLE) # Expands by resize_y
def main():
main = True
while main:
for event in pygame.event.get(): #skip quit code
if event.type == pygame.KEYDOWN and event.key == pygame.K_d:
resize_y += 100 #Add resize_y
console.fill((255, 255, 255)) # Fill background with white
pygame.display.update()
main() # call main
没有错误消息,没有用,当然,当我按 D 时,我期望扩展显示。
我该如何解决?
答案 0 :(得分:1)
首先,必须使用单个set_mode
参数将所有标志传递给flags
。在您的代码中,您将RESIZABLE
作为depth
参数传递。使用or
设置多个标志。
第二,您写:
要调整显示尺寸,我将编写如下代码:pygame.display.set_mode((1000,500),pygame.RESIZABLE)
但是您实际上并没有在更改pygame.display.set_mode
后呼叫resize_y
。
您的代码应该看起来像这样:
import pygame
def main():
resize_y = 0 # Don't resize when the program start
console = pygame.display.set_mode((370, 500+resize_y), pygame.NOFRAME or pygame.RESIZEABLE) # Expands by resize_y
running = True
while running:
for event in pygame.event.get(): #skip quit code
if event.type == pygame.QUIT:
return
if event.type == pygame.KEYDOWN and event.key == pygame.K_d:
resize_y += 100 #Add resize_y
console = pygame.display.set_mode((370, 500+resize_y), pygame.NOFRAME or pygame.RESIZEABLE)
console.fill((255, 255, 255)) # Fill background with white
pygame.display.update()
main() # call main
但是请注意,RESIZABLE
标志与NOFRAME
标志结合使用基本上没有用。如果要在代码中更改窗口的大小,则不需要RESIZABLE
,并且可以轻松地删除它。仅在用户应该能够调整窗口大小时使用。