错误:无法打开.png

时间:2013-03-16 16:03:08

标签: python pygame

有人可以帮我确定哪里出错了吗?谢谢。我得到:pygame.error: Couldn't open space.png。我的代码如下:

import random, math, pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((800,600))
pygame.display.set_caption("orbit demo") 

space = pygame.image.load("space.png").convert()


while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            sys.exit()

    keys = pygame.key.get_pressed()
    if keys[K_ESCAPE]:
        sys.exit()

    #draw backgroud
    screen.blit(space, (0,0))
    pygame.display.flip()            

3 个答案:

答案 0 :(得分:1)

您可能需要执行以下操作:

import pygame
import os

try:
    # load from subfolder 'data' 
    background = pygame.image.load(os.path.join("data","background640x480_a.jpg"))
    ball = pygame.image.load(os.path.join("data","snake.gif"))
except:
    raise UserWarning, "Unable to find the images in the folder 'data' :-( "  

这是从Python Game Book网站获得的。基本上你告诉它在哪里看(在上面的代码中,它是数据文件夹。如果它找不到它,它会报告用户警告。

所以在我为我的游戏写作的例子中,我有一个图像文件夹,所以我这样做

self.image = background = pygame.image.load(os.path.join("images","starship.png")).convert()

我是这方面的新手,但阅读建议你这样做。

编辑 - 另一个原因可能是。它是正确的格式(例如png)还是您将文件命名为其他格式?

答案 1 :(得分:0)

尝试指定图像的完整路径,例如:C:/Python34/your_folder/file_name.png

注意:在你的python代码中引用一个你不能使用“\”的路径,必须使用“/” “\”在python中有特定的含义。

答案 2 :(得分:0)

对我来说,答案是我没有从包含游戏文件的文件夹中运行命令。我的handleLogin = (username, password) => { const authDetails = new AuthenticationDetails({ Username: username, Password: password, }); const userData = { Username: username, Pool: getUserPool(), Storage: getStorage(), }; const cognitoUser = new CognitoUser(userData); cognitoUser.authenticateUser(authDetails, { onSuccess: () => { // login } newPasswordRequired: userAttr => { this.setState({ isFirstLogin: true, user: cognitoUser, userAttr: userAttr, }); }, }); }; changePassword = (newPassword) => { const cognitoUser = this.state.user; const userAttr = this.state.userAttr; cognitoUser.completeNewPasswordChallenge(newPassword, userAttr, { onSuccess: result => { // login } }); }; render() { return ( <div> {this.state.isFirstLogin ? ( <NewPassswordForm changePassword={this.changePassword} /> ) : ( <LoginForm handleLogin={this.handleLogin} /> )} </div> ); } 文件和.py文件都在最高级别,因此我.png进入了文件目录,然后运行了。