python tkinter模块 打地鼠游戏 代码
时间: 2024-11-28 08:18:31 浏览: 2
Python Tkinter模块通常用于创建图形用户界面,包括打地鼠游戏这样的基本GUI应用。Tkinter是Python标准库的一部分,可以用来快速搭建简单的窗口应用程序。
下面是一个简化的打地鼠游戏的基本框架,使用了Tkinter库和random库:
```python
import tkinter as tk
import time
from random import randint
# 定义地鼠的位置和隐藏时间
mice_positions = [(50, 50), (75, 75), (100, 100)]
mouse_hidden_time = 2.0
class MoleGame(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.init_game()
def init_game(self):
# 创建地鼠图标和击打区域
for pos in mice_positions:
mole = tk.Button(self, text="鼹鼠", bg="white", width=4, height=4,
command=lambda x=pos: self.mole_hit(x))
mole.place(x=pos[0], y=pos[1])
self.mainloop()
def mole_hit(self, position):
# 隐藏地鼠并显示击打结果
self.after(mouse_hidden_time * 1000, lambda: self.update_position(position))
self.update_mole_visible(position)
def update_position(self, position):
# 移除击打的地鼠图标
for widget in self.winfo_children():
if isinstance(widget, tk.Button) and widget["text"] == "鼹鼠":
widget.destroy()
# 添加新的随机位置的地鼠
new_mole_pos = (randint(0, self.master.winfo_width()), randint(0, self.master.winfo_height()))
new_mole = tk.Button(self, text="鼹鼠", bg="white", width=4, height=4,
command=lambda x=new_mole_pos: self.mole_hit(x))
new_mole.place(x=new_mole_pos[0], y=new_mole_pos[1])
def update_mole_visible(self, position):
# 更新击打后的地鼠状态
self.mole = tk.Label(self, text="被打!", bg="red", width=4, height=4, font=("Arial", 16))
self.mole.place(x=position[0], y=position[1])
time.sleep(mouse_hidden_time)
self.mole.destroy()
if __name__ == "__main__":
root = tk.Tk()
game = MoleGame(master=root)
```
这个代码示例创建了一个基础版的打地鼠游戏,游戏开始时会有一些随机位置的地鼠图标,点击后地鼠会被隐藏一段时间,并且位置会更换。请注意,这只是一个基础版本,实际游戏中可能还需要添加计分、暂停、继续等功能以及更复杂的动画效果。
阅读全文