我正在使用 Python 2.7.3 和 Pyglet 1.1.4 创建一个迷宫/迷宫游戏,我有一个问题和一个问题。
我的代码可以在这里找到:https ://github.com/czarnot/labirynth_py
要启动程序,请使用 python 启动 main.py。
要移动 CPU,请使用“a”按钮。这是我的主要问题。我想让 CPU 在没有用户输入的情况下移动 - 我希望它每 0.5 或 1 秒移动 1 步。
我尝试在 cpu 步骤之间使用 time.sleep() ,它只是在所有步骤中都睡着了,然后传送到最后。我认为这与 Pyglet 相关 - 可能具有绘图功能,因为睡眠运行良好(当有打印时,它会在睡眠后打印)。
这是它现在使用“A”按钮(main.py)工作的代码部分:
elif symbol == key.A:
if win == 0:
#for item in cpu:
item = cpu[x]
window.clear()
player.draw()
if item == 'North':
player.y += fieldlength
elif item == 'South':
player.y -= fieldlength
elif item == 'East':
player.x += fieldlength
elif item == 'West':
player.x -= fieldlength
x += 1
以及我尝试过的代码(我也尝试了其他几种组合......):
elif symbol == key.A:
if win == 0:
for item in cpu:
window.clear()
player.draw()
if item == 'North':
player.y += fieldlength
elif item == 'South':
player.y -= fieldlength
elif item == 'East':
player.x += fieldlength
elif item == 'West':
player.x -= fieldlength
time.sleep(1)
另一个问题:
我的地图生成算法非常简单 - 它选择随机单元格,然后选择该单元格的随机邻居,从他们的邻居列表中删除该单元格,并将墙壁放入 WallList。
我想制作更好的地图生成算法 - 就像维基百科中的这样:http ://en.wikipedia.org/wiki/Maze_generation_algorithm#Depth-first_search
我不确定我的墙绘制方法是否有效 - 为每个墙组合存储 12 个图像并在 MyMap 值中存储“WallNumber”值不是更好吗?这是 WallNumber 值的示例:http: //imgur.com/DDfL1
我也要求这个,因为我觉得我现在的方法会非常混乱和棘手,为此编写更好的地图生成算法。
@@EDIT @zenpoy:我之前尝试过使用这个功能,但我一定做错了什么,现在我尝试了它并且它有效:)。