Python弹窗迷宫游戏:使用Tkinter创建简单迷宫游戏
以下是使用Python编写的一个简单的弹窗迷宫游戏的示例代码:\n\npython\nimport tkinter as tk\n\nclass MazeGame:\n def __init__(self, master):\n self.master = master\n self.master.title("迷宫游戏")\n \n self.canvas = tk.Canvas(self.master, width=400, height=400)\n self.canvas.pack()\n \n self.player = self.canvas.create_oval(10, 10, 30, 30, fill="blue")\n self.canvas.bind_all("<KeyPress-Up>", self.move_up)\n self.canvas.bind_all("<KeyPress-Down>", self.move_down)\n self.canvas.bind_all("<KeyPress-Left>", self.move_left)\n self.canvas.bind_all("<KeyPress-Right>", self.move_right)\n \n self.maze = [\n [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],\n [1, 0, 0, 0, 1, 0, 0, 0, 0, 1],\n [1, 0, 1, 0, 1, 0, 1, 1, 0, 1],\n [1, 0, 1, 0, 0, 0, 0, 0, 0, 1],\n [1, 0, 1, 1, 1, 0, 1, 0, 1, 1],\n [1, 0, 0, 0, 0, 0, 1, 0, 0, 1],\n [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]\n ]\n \n self.draw_maze()\n \n def draw_maze(self):\n self.canvas.delete("maze")\n for row in range(len(self.maze)):\n for col in range(len(self.maze[row])):\n if self.maze[row][col] == 1:\n self.canvas.create_rectangle(col*40, row*40, (col+1)*40, (row+1)*40, fill="black", tags="maze")\n \n def move_up(self, event):\n x, y, _, _ = self.canvas.coords(self.player)\n if self.maze[int(y/40)-1][int(x/40)] == 0:\n self.canvas.move(self.player, 0, -40)\n \n def move_down(self, event):\n x, y, _, _ = self.canvas.coords(self.player)\n if self.maze[int(y/40)+1][int(x/40)] == 0:\n self.canvas.move(self.player, 0, 40)\n \n def move_left(self, event):\n x, y, _, _ = self.canvas.coords(self.player)\n if self.maze[int(y/40)][int(x/40)-1] == 0:\n self.canvas.move(self.player, -40, 0)\n \n def move_right(self, event):\n x, y, _, _ = self.canvas.coords(self.player)\n if self.maze[int(y/40)][int(x/40)+1] == 0:\n self.canvas.move(self.player, 40, 0)\n\nif __name__ == "__main__":\n root = tk.Tk()\n game = MazeGame(root)\n root.mainloop()\n\n\n这个示例代码使用了tkinter库来创建弹窗界面,并在其中使用canvas组件来显示迷宫和玩家。玩家可以使用键盘上的箭头键来控制移动,通过判断迷宫中的墙壁位置来限制玩家的移动。
原文地址: https://www.cveoy.top/t/topic/qd5l 著作权归作者所有。请勿转载和采集!