首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pygame错误,未设置视频模式

pygame错误,未设置视频模式
EN

Stack Overflow用户
提问于 2013-09-20 06:31:37
回答 2查看 15.9K关注 0票数 4

我只是在为我的游戏设置一些函数,但是我的脚本无法加载图像

代码语言:javascript
运行
复制
#used variables
# x, y for alien location
# nPc for the aliens image
#
#
#
#
#
#
#
#
#
#



#set up
import pygame, sys, random, time, math
from pygame.locals import *
pygame.init()


nPc = '/home/claude/Dropbox/Bowtie/Prisim/Images/Alien_Races/Standered/alien_1.png'


nPc = pygame.image.load(nPc).convert_alpha()

def loc_alien():
        x = random.randint(0, 400)
        y = randaom.randint(0, 400)


def spawn_alien(x, y):
        screen.blit(nPc, (x, y))

当我运行这个函数时,我不会发生任何事情,因为我还没有使用这些函数,但是当我运行它时,我得到了这个错误

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "/home/claude/Dropbox/Bowtie/Prisim/Scripts/aliens.py", line 26, in <module>
    nPc = pygame.image.load(nPc).convert_alpha()
error: No video mode has been set

有人知道我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-20 06:34:44

我相信你需要打个电话:

代码语言:javascript
运行
复制
screen = pygame.display.set_mode((800, 600)) # change to the real resolution

此调用实际上将返回您想要在其上进行blit的曲面。以下是链接资源中的文档。

初始化窗口或屏幕以进行显示

set_mode(resolution=(0,0),flags=0,depth=0) ->曲面

此函数将创建一个显示表面。传入的参数是对显示类型的请求。实际创建的显示将是系统支持的最佳匹配。

分辨率参数是一对表示宽度和高度的数字。flags参数是附加选项的集合。depth参数表示用于颜色的位数。

返回的Surface可以像常规Surface一样绘制,但最终会在监视器上看到更改。

如果未传递分辨率或设置为(0,0),并且pygame使用SDL版本1.2.10或更高版本,则创建的曲面将具有与当前屏幕分辨率相同的大小。如果仅将宽度或高度设置为0,则曲面将具有与屏幕分辨率相同的宽度或高度。使用1.2.10之前的SDL版本将引发异常。

通常情况下,最好不要传递深度参数。它将默认为系统的最佳和最快的颜色深度。如果您的游戏需要特定的颜色格式,您可以使用此参数控制深度。Pygame将模拟一个不可用的颜色深度,这可能会很慢。

请求全屏显示模式时,有时无法精确匹配所请求的分辨率。在这些情况下,pygame将选择最接近的兼容匹配。返回的表面仍将始终与请求的分辨率匹配。

flags参数控制您想要哪种类型的显示。有几种类型可供选择,您甚至可以使用按位或运算符(竖线“|”字符)组合多种类型。如果你传递0或者没有标志参数,它将默认为软件驱动的窗口。以下是您要从中选择的显示标志:

pygame.FULLSCREEN创建全屏显示pygame.DOUBLEBUF建议用于HWSURFACE或OPENGL pygame.HWSURFACE硬件加速,仅在全屏pygame.OPENGL中创建OpenGL可渲染显示pygame.RESIZABLE显示窗口应足够大pygame.NOFRAME显示窗口将没有边框或控件

例如:在屏幕上打开一个窗口screen_width=700 screen_height=400 screen=pygame.display.set_mode(screen_width,screen_height)

票数 10
EN

Stack Overflow用户

发布于 2021-06-30 22:45:08

在创建包含图像的变量之前,不要忘记创建表面

如下所示:

代码语言:javascript
运行
复制
win = pygame.display.set_mode((576, 1024))
background_day = pygame.image.load("background-day.png").convert()

不是这样的:

代码语言:javascript
运行
复制
background_day = pygame.image.load("background-day.png").convert()
win = pygame.display.set_mode((576, 1024))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18905989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档