0

だから、私はこのコードを書きました、そしてそれは本当にうまくいくはずです。主な問題は、ウィンドウを開いて実行すると、コードが応答を停止することです。

bif = "back.jpeg"
mif = "image2.png"

import pygame, sys
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((640,360),0,32)

background = pygame.image.load(bif).convert()
mouse_c = pygame.image.load(mif).convert_alpha()

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

    screen.blit(background,(0,0))

    x,y = pygame.mouse.get_pos()
    x -= mouse_c.get_width()/2
    y -= mouse_c.get_height()/2

    screen.blit(mouse_c, (x,y))

    pygame.display.update()

また、IDLEでこのエラーが発生しています。

Traceback (most recent call last):
  File "C:\Users\Liam\Documents\game\Game", line 10, in <module>
    background = pygame.image.load(bif).convert()
error: Couldn't open back.jpeg
4

2 に答える 2

1

コードを実行するときは、正しい作業ディレクトリで実行する必要があります。それが画像が見つからない理由です。

IDLE でコードを実行しているため、エラーの後でウィンドウが閉じないように、ターミナルはおそらくプロセスを維持します (プログラムが終了した場合)。event.get を定期的に実行しないため、windows はそれが応答していないことに気づき、それが得られます。

スクリプトが実行されているディレクトリを確認するには、os.getcwd() の出力を出力します。

まだパスをいじらずに実行したい場合は、「C:\Users\My Name\Projects\Python\back.jpeg」のように、画像の絶対パスを設定してみませんか。

于 2013-07-09T00:07:52.270 に答える
0
pygame.quit
sys.exit

する必要があります

pygame.quit()
sys.exit()

screen.blit(mouse_c(x,y))

する必要があります

screen.blit(mouse_c, (x,y))

また、1秒間に特定の最大フレームに制限することを検討することもできます(チュートリアルではこれをカバーしています)

于 2013-07-08T22:00:17.800 に答える