【发布时间】:2014-01-31 19:37:51
【问题描述】:
我是编程新手。我正在尝试将 pygame 检测到的最高分辨率转换为整数,但是当我尝试将元组转换为 int 时收到错误。
我知道我无法更改元组,但我正在创建一个新的 int 并且它不接受元组值。
所以我终于通过像这样先将元组转换为列表来解决这个错误。
import pygame, sys, time, random
from pygame.locals import *
pygame.init()
modes = pygame.display.list_modes()
maxWindow = list(modes[0])
WINDOWWIDTH = int(maxWindow[0])
WINDOWHEIGHT = int(maxWindow[1])
windowSurface = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT), pygame.FULLSCREEN)
有没有更有效的方法来进行这种转换?我猜我走了很长一段路。
另外,是否有一个 pygame 函数可以为我自动检测最大或本机分辨率,而此代码是不必要的?
谢谢
【问题讨论】:
-
为什么要拆分它?
pygame.display.set_mode(maxWindow, pygame.FULLSCREEN) -
这可能是我没有放入更多程序的坏处,但答案是因为 pygame.Rect 对象稍后会像这样单独使用它们。 pygame.Rect(random.randint(0, WINDOWWIDTH - 20), random.randint(0, WINDOWHEIGHT - 20), 40, 100)
-
哦,好的。然后只需使用
WINDOWWIDTH, WINDOWHEIGHT = modes[0]。这应该可行,因为list_modes()已经返回整数的二元组,无需将宽度/高度转换为整数,您只需解压缩元组。 -
谢谢,这行得通,看起来更好。