我已经做了一个地图在瓷砖编辑器,并打算使用它在游戏中使用游戏。我导入pytmx来帮助处理这个过程,但是当我使用load_pygame(“文件目录”)时,它会给出这个错误。
Traceback (most recent call last):
File "D:\Coder man\code\GUI\game map\showing map.py", line 7, in <module>
tmx_data = load_pygame("D:\Tile sheet\Dungeon Hub room.tmx")
File "C:\Users\Name\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytmx\util_pygame.py", line 183, in load_pygame
return pytmx.TiledMap(filename, *args, **kwargs)
File "C:\Users\Name\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytmx\pytmx.py", line 501, in __init__
self.parse_xml(ElementTree.parse(self.filename).getroot())
File "C:\Users\Name\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytmx\pytmx.py", line 550, in parse_xml
self.add_tileset(TiledTileset(self, subnode))
File "C:\Users\Name\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytmx\pytmx.py", line 1101, in __init__
self.parse_xml(node)
File "C:\Users\Name\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pytmx\pytmx.py", line 1129, in parse_xml
source, self.parent.filename, path
Exception: Cannot find tileset file :/automap-tiles.tsx from D:\Tile sheet\Dungeon Hub room.tmx, should be at D:\Tile sheet\:\automap-tiles.tsx到目前为止,我的代码是:
import pygame, sys
from pytmx.util_pygame import load_pygame
pygame.init()
screen = pygame.display.set_mode((1280, 720))
tmx_data = load_pygame("D:\Tile sheet\Dungeon Hub room.tmx")
print(tmx_data)
# game loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill("black")
pygame.display.update()我原以为这款玩偶游戏不会出现错误,输出结果是:
还有一个游戏窗口
我尝试过重复检查文件的目录并使用pytmx.load_pygame。
发布于 2022-11-05 02:10:44
错误信息清楚地说明了问题所在。
Cannot find tileset file :/automap-tiles.tsx ... at D:\Tile sheet\:\automap-tiles.tsx您的平铺地图引用的是外部瓷砖集文件(*.tsx),它的文件路径由一个完整路径指定,没有驱动器号,这是由微软定义的,我将称之为半绝对路径,它既不是绝对路径,也不是相对路径。PyTMX不支持这种路径。
有两种解决方案。
发布于 2022-11-05 07:06:25
不要在文件路径中使用反斜杠,因为"\"启动和转义序列(参见String和Bytes文字,例如"\n"是新行,"\t"是选项卡)。你有三个选择:
"\\"是一个反斜杠)
tmx_data =load_pygame(“D:\瓷片\地下城中心room.tmx")r"...")
tmx_data =load_pygame(r“D:\瓷片\地下城枢纽room.tmx")https://stackoverflow.com/questions/74324034
复制相似问题