2017-09-12 3 views
0

これは私がPygameで書いた最初のプログラムです。このスレッドを開く前に、私は肯定的な結果を出すことなく2つのスレッドを読みました。私はこの問題を解決するためにほとんど成功しなかったプログラムをコピーしました。ここに私のコードです:pygame.error:can not open car.png

import pygame 
pygame.init() 
display_width = 800 
display_height = 600 
black = (0,0,0) 
white = (255,255,255) 
red = (255,0,0) 

gameDisplay = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption("Game") 
clock = pygame.time.Clock() 
car = pygame.image.load('car.png') 
def car(x,y): 
    gameDisplay.blit(car,(x,y)) 
x = (display_width * 0.45) 
y = (display_height * 0.8) 
crashed = False 
while not crashed: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      crashed = True 
    gameDisplay.fill(blue) 
    car(x,y) 
    pygame.display.update() 
    clock.tick(24) 
pygame.quit() 
quit() 

私はディレクトリに問題があるかもしれないと思ったが、そうは思わない。私はデスクトップに「Nuova Cartella」という名前のフォルダを作成します(新しいフォルダイタリア語、それをイタリックで書いています)。最初に2つのファイルを入れました。 2番目は「car.png」です。これはもちろん、パイゲームでロードしたい画像です。 私の英語は申し訳ありません、私は最善を尽くしました。

+0

始めに、私は 'car.png'に完全/絶対パスを使用しようとします。また、ファイルへのアクセスを許可するファイルに対するアクセス許可を確認してください。 – JacobIRR

+1

あなたは 'car'と同じ名前の2つの異なるオブジェクトを持っていますので、それも修正してください – PRMoureu

+0

' 'import os'を試してから、' print(os.path.isfile( 'car.png') ')と' print(os .listdir()) '。前者は、ファイルが存在し、後者がディレクトリ内のすべてのファイルのリストを出力する場合は 'True'を出力しなければなりません。 – skrx

答えて

1

コードにいくつかの誤りがあります。最も重要なものは@PRMoureuに気付いた。あなたの定義はcarと呼ばれ、画像の変数はcarとも呼ばれます。最初にイメージ変数を作成してから、イメージを消去した同じ名前の関数を作成し、それを関数に置き換えました。 「車」「carImage」などと変更するか、関数名と異なるものを変更するだけです。また、あなたが実際に定義していないことを振り返ってみると、あなたは色の青で画面を埋める。これらのエラーをデバッグした後ここでは、コードです:

import pygame 
from pygame.locals import * 
pygame.init() 
display_width = 800 
display_height = 600 
black = (0,0,0) 
white = (255,255,255) 
red = (255,0,0) 

gameDisplay = pygame.display.set_mode((display_width,display_height)) 
pygame.display.set_caption("Game") 
clock = pygame.time.Clock() 
carImage = pygame.image.load('car.png') 
def car(x,y): 
    gameDisplay.blit(carImage,(x,y)) 
x = (display_width * 0.45) 
y = (display_height * 0.8) 
crashed = False 
while not crashed: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      crashed = True 
    gameDisplay.fill(white) 
    car(x,y) 
    pygame.display.update() 
    clock.tick(24) 
pygame.quit() 
quit() 

しかし、いけないだけまだそれを試してみてください! タイトルから、あなたのエラーは「couldnt open car.png」 ですが、私が記述したコードの問題は別のエラーを出すはずです。私はそれがかなり奇妙で、その唯一の説明(ディレクトリがきれいで、pythonに画像へのアクセス権があるという事実を考慮して)があなたのファイル拡張子はpngファイルではなく、おそらくjpgか何かであることがわかります。それが本当ならば

、その後、あなたのイメージの正しい拡張子ではなく変化する「.PNG」

carImage = pygame.image.load('car.png') 

中を私は上記の持っているコードをコピーします。それはそれを行う必要があります。

これがうまくいかない場合は、これは私が本当に考えることができるすべての助けになるのではないかと心配しています。多分詳細が役立つかもしれません。

私はこれがとにかく役立つと願っています。それは私と一緒だったので、...幸運!