所以,我写了这段代码,它确实应该有效。主要问题是代码在打开窗口并运行时就停止响应。
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
答案 0 :(得分:1)
当您运行代码时,您必须确保它在正确的工作目录中运行。这就是为什么它找不到图像的原因。
由于您在IDLE中运行代码,终端可能会使进程保持活动状态,以便在错误发生后窗口不会关闭(如果程序终止,则会关闭)。由于它没有定期运行event.get,因此Windows会注意到它没有响应,而且这是你得到的。
要找出运行脚本的目录,请输出os.getcwd()的输出。
如果您不想摆弄路径并让它运行,为什么不立即为图像设置绝对路径,例如&#34; C:\ Users \ My Name \ Projects \ Python \ back.jpeg&#34;
答案 1 :(得分:0)
pygame.quit
sys.exit
应该是
pygame.quit()
sys.exit()
和
screen.blit(mouse_c(x,y))
应该是
screen.blit(mouse_c, (x,y))
您也可能希望将其限制为每秒一定的最大帧数(教程涵盖此内容)