我正在尝试制作平台游戏,并且在下面的代码中,我试图在背景上四处移动一个图像('bird.png')。但是,每次我尝试启动pygame时,它甚至都不会加载任何图像而崩溃。我签出了其他页面,但仍然无法解决问题。代码中可能存在一些错误,但是我无法检查它是否正常运行,因为正如我所说,pygame一直崩溃。有什么我可以解决的吗?
PS。抱歉,如果有点混乱,请输入法文中的法语单词:)
import pygame
from pygame import *
pygame.init()
TE=[]
def perso(X):
X = [0,448]
while X != [640,0]:
w=int(input("Déplacement: "))
#Right#
if w==0:
if X[1] == 608:
print("You can't leave the map")
else:
X[1] += 32
print(X)
#Left#
elif w==1:
if X[1] == 0:
print("You can't leave the map")
else:
X[1] -= 32
print(X)
#Down#
elif w==2:
if X[0] == 456:
print("You can't leave the map")
else:
X[0] += 24
print(X)
#Up#
elif w==3:
if X[0] == 0:
print("You can't leave the map")
else:
X[0] -= 24
print(X)
else:
print("non valable")
print("Bravo!")
screen = pygame.display.set_mode((680, 488)) background_image = pygame.image.load("C:/Python34/Scripts/Images & Sounds/background(680x480).jpg").convert()
screen.blit(background_image,[0,0])
character = pygame.image.load("C:/Python34/Scripts/Images & Sounds/bird(40x40).png").convert()
screen.blit(character, (X[0],X[1]))
perso(TE)
flag
我运行代码,当pygame窗口打开时,它是黑色的,几秒钟后,我收到“不响应”消息(对于pygame窗口)。但是,w=int(input("Déplacement: "))
部分似乎可以正常工作,因为它要求输入。也许与图像有关?
参考方案
最简单的游戏循环之一由每次通过循环调用的“更新”序列和“渲染”序列组成。这两个序列只需很少的时间即可完成(速度越快越好)。可能是Python的input
内置函数正在停止“更新”序列,并导致游戏崩溃,因为它无法继续循环。
解决此问题的最简单方法是仅使用Pygame的内置按键输入法。打破“渲染”和“更新”序列也是一个好主意,以帮助区分游戏逻辑和图像渲染。
import pygame
from pygame import *
pygame.init()
screen = pygame.display.set_mode((680, 488))
background_image = pygame.image.load("C:/Python34/Scripts/Images & Sounds/background(680x480).jpg").convert()
character = pygame.image.load("C:/Python34/Scripts/Images & Sounds/bird(40x40).png").convert()
def move(X):
keys = pygame.get_pressed()
#Right#
if keys[pygame.K_RIGHT] != 0:
if X[1] == 608:
print("You can't leave the map")
else:
X[1] += 32
print(X)
#Left#
elif keys[pygame.K_LEFT] != 0:
if X[1] == 0:
print("You can't leave the map")
else:
X[1] -= 32
print(X)
#Down#
elif keys[pygame.K_DOWN] != 0:
if X[0] == 456:
print("You can't leave the map")
else:
X[0] += 24
print(X)
#Up#
elif keys[pygame.K_UP] != 0:
if X[0] == 0:
print("You can't leave the map")
else:
X[0] -= 24
print(X)
else:
print("non valable")
return X
def draw(X):
screen.blit(background_image,[0,0])
screen.blit(character, (X[0],X[1]))
Running = True
X = [0,448]
while Running:
# Updated and draw
X = move(X)
draw(X)
# Allow for the user to exit the game
for i in pygame.event.get():
if i.type==QUIT:
Running = False
exit()
# End the game if
if X == [640, 0]:
Running = False
exit()
Python-crontab模块 - python我正在尝试在Linux OS(CentOS 7)上使用Python-crontab模块我的配置文件如下:{ "ossConfigurationData": { "work1": [ { "cronInterval": "0 0 0 1 1 ?", "attribute&…
Python GPU资源利用 - python我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…
Python sqlite3数据库已锁定 - python我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…
Python Pandas导出数据 - python我正在使用python pandas处理一些数据。我已使用以下代码将数据导出到excel文件。writer = pd.ExcelWriter('Data.xlsx'); wrong_data.to_excel(writer,"Names which are wrong", index = False); writer.…
python:ConfigParser对象,然后再阅读一次 - python场景:我有一个配置文件,其中包含要执行的自动化测试的列表。这些测试是长期循环执行的。 配置文件的设计方式使ConfigParser可以读取它。由于有两个三个参数,因此我需要通过每个测试。现在,此配置文件由script(s1)调用,并且按照配置文件中的列表执行测试。Script(s1)第一次读取配置,并且在每次测试完成后都会执行。阅读两次的要求:由于可能会…