python - 非面向 Ubuntu 的 pygame 平台游戏无法在 Ubuntu 以外的任何平台上正确加载关卡

标签 python linux pygame cross-platform compatibility

我一直在开发一个基于 thispygame 平台游戏。 。我是在Ubuntu机器上写的,在其他操作系统上好像不行。

生成代码是这样的:

levelFile = tkFileDialog.askopenfile(mode='r', defaultextension='.lvl', filetypes=[('Level File', '*.lvl')], parent=tk)
level = levelFile.read().split("\n")
del level[len(level) - 1]

# Add platforms to array based on level string

我在文本编辑器中使用 ASCII 字符来表示不同的图 block 创建了一个关卡。

它在我的 Ubuntu 机器上运行良好,但在 MacBook Air 和 Windows 笔记本电脑上运行时,却无法运行。关卡布局未按预期加载(图 block 加载到意外位置,并且相机位置困惑)。

有人知道发生了什么事以及如何解决它吗?

最佳答案

关卡文件中的行分隔符与操作系统相关,如果您在 Linux 下创建文件,它将在 Windows 下使用“\n”“\r\n”,因此这可能是它不起作用的原因。我认为你应该使用 os.linesep 而不是“\n”将文件分割成行。

level = levelFile.read().split(os.linesep)

关于python - 非面向 Ubuntu 的 pygame 平台游戏无法在 Ubuntu 以外的任何平台上正确加载关卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41666200/

相关文章:

python - 如何在python中播放wav文件?

python - Get_Pressed 行为异常

python - 返回使用geopy和try/except时引发AttributeError的项目列表?

python 2.7.9/pycharm 4/windows7 : 'file' object has no attribute 'readall'

python - 将 .dat 文件导入为数组

python - 为什么 Python ggplot 返回名称 'aes' 未定义?

c - IOCTL:HDIO_GET_IDENTITY 的参数无效

linux - 根据主机名有条件地运行 init.d 脚本

linux - 如何使用 awk 比较 CSV 列?

python - Pygame.movi​​e 丢失