Python Pygame《外星人入侵》墙体无法呈现预期形状问题求助
问题修复方案
核心问题原因
你代码的问题出在walls.py文件的shape数组定义环节:数组内的多个表示墙体形状的字符串之间没有加逗号分隔,Python会自动拼接相邻的无分隔符字符串,最终shape数组实际仅包含1个超长字符串,而非你预期的7行形状数据。遍历渲染时只会生成同一y坐标的墙体块,就出现了你看到的单条线段效果。
修复步骤
- 修改
walls.py中的shape数组,给每一行字符串末尾添加逗号,修改后代码如下:
- 修改
shape = [ ' xxxxxxx', ' xxxxxxxxx', 'xxxxxxxxxxx', 'xxxxxxxxxxx', 'xxxxxxxxxxx', 'xxx xxx', 'xx xx' ]
- 验证修改效果:可以在
_wall_setup方法中添加打印代码print(len(self.shape)),修改前输出结果为1,修改后输出结果为7即代表形状数据读取正常。
- 验证修改效果:可以在
可选调整
如果后续需要修改墙体整体尺寸,直接调整_wall_setup方法中self.block_size的数值即可,数值越大墙体整体的宽高越大。
内容的提问来源于stack exchange,提问作者Zoidberg
相关产品推荐
相关产品推荐

