Python Tkinter 我的世界 2D 版:使用方向键控制球形玩家,放置方块,随机地形生成
下面是一个简单的示例代码,实现了你描述的功能:\n\npython\nimport tkinter as tk\nimport random\n\nclass MinecraftGame:\n def __init__(self):\n self.root = tk.Tk()\n self.canvas = tk.Canvas(self.root, width=800, height=600)\n self.canvas.pack()\n self.canvas.bind("<Button-1>", self.destroy_block) # 左键销毁方块\n self.canvas.bind("<Button-3>", self.add_block) # 右键添加方块\n self.canvas.bind("<KeyPress>", self.switch_block) # 切换方块\n self.canvas.bind("<Key>", self.move_player) # 移动玩家\n \n self.blocks = ["grass", "dirt", "stone", "bedrock", "oak_wood", "wood"]\n self.current_block = self.blocks[0]\n \n self.player_x = 400\n self.player_y = 300\n self.ball_radius = 10\n \n self.generate_terrain()\n self.draw_player()\n \n self.root.mainloop()\n \n def generate_terrain(self):\n for x in range(0, 800, 20):\n for y in range(0, 600, 20):\n block = random.choice(self.blocks)\n self.canvas.create_rectangle(x, y, x+20, y+20, fill=block)\n \n def draw_player(self):\n self.canvas.create_oval(self.player_x-self.ball_radius, self.player_y-self.ball_radius,\n self.player_x+self.ball_radius, self.player_y+self.ball_radius, fill="blue")\n \n def destroy_block(self, event):\n x = event.x // 20 * 20\n y = event.y // 20 * 20\n self.canvas.create_rectangle(x, y, x+20, y+20, fill="white")\n \n def add_block(self, event):\n x = event.x // 20 * 20\n y = event.y // 20 * 20\n self.canvas.create_rectangle(x, y, x+20, y+20, fill=self.current_block)\n \n def switch_block(self, event):\n if event.keysym == "1":\n self.current_block = self.blocks[0]\n elif event.keysym == "2":\n self.current_block = self.blocks[1]\n elif event.keysym == "3":\n self.current_block = self.blocks[2]\n elif event.keysym == "4":\n self.current_block = self.blocks[3]\n elif event.keysym == "5":\n self.current_block = self.blocks[4]\n elif event.keysym == "6":\n self.current_block = self.blocks[5]\n \n def move_player(self, event):\n if event.keysym == "Up":\n self.player_y -= 10\n elif event.keysym == "Down":\n self.player_y += 10\n elif event.keysym == "Left":\n self.player_x -= 10\n elif event.keysym == "Right":\n self.player_x += 10\n self.canvas.delete("all")\n self.generate_terrain()\n self.draw_player()\n\ngame = MinecraftGame()\n\n\n这个代码使用了tkinter创建一个窗口并在窗口上绘制了方块和玩家角色。你可以使用鼠标左键销毁方块,鼠标右键添加方块,使用1-6键切换方块类型,使用方向键控制玩家角色移动。游戏开始时会生成随机地形。
原文地址: https://www.cveoy.top/t/topic/pPX1 著作权归作者所有。请勿转载和采集!