1

このコードを実行するたびに、メッセージ pygame.error: Couldn't open ship.bmp が表示されます。ファイル ship.bmp をコードと同じ場所に保持しています。助けていただければ幸いです。

import sys
import pygame

pygame.init()

screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width,screen_height))
bg_color = (0, 13, 114)
pygame.display.set_caption('space invaders')

shipImg = pygame.image.load("ship.bmp")

def ship(x,y):
    screen.blit(shipImg, (x,y))

x = (screen_width * 0.45)
y = (screen_height * 0.8)

crashed = False
while not crashed:

    #keyboard events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            crashed = True
    screen.fill(bg_color)
    ship(x,y)
    pygame.display.flip()
pygame.quit()
quit()
4

3 に答える 3

1

script/py プログラムの最初の行として print os.getwd() を使用して、実際にどのフォルダーから開始しているかを確認します。画像がたまたまメイン フォルダーのサブディレクトリにある場合 (os.getwd() の出力には表示されません)、「ship.画像をロードするときに「subdirectory/ship.bmp」をパスとして記述します。

于 2017-09-24T15:48:25.403 に答える
1

このコードを Unix OS で実行しますか? もしそうなら、この file.py を実行するために作業ディレクトリを変更する必要があります! ファイルが保存されたディレクトリへのcdコマンドを使用した端末タイプで!次に、同じパスでpythonを実行すると、正常に動作します。

于 2016-08-04T10:43:52.740 に答える
0

私はあなたのコードを試してみましたが、うまくいきました。イメージが ROOT DIRECTORY にあることを確認します。これは、このスクリプト/py ファイルを保存するフォルダーと同じです。もう 1 つの理由として、ファイル名に隠し文字が含まれている可能性があります。これは私に数回起こりました。名前の変更機能を試して、ファイル拡張子を含む名前全体を削除し、同じ拡張子でファイルの名前を変更してください。

于 2016-04-25T05:34:45.610 に答える