python 打地鼠图片计时游戏代码
时间: 2023-11-09 08:15:30 浏览: 34
以下是一个简单的Python打地鼠图片计时游戏代码,你可以参考一下:
```python
import tkinter as tk
import random
import time
class Game(tk.Tk):
def __init__(self):
super().__init__()
self.title("打地鼠")
self.geometry("400x400")
self.score = 0
self.time_left = 30
self.moles = []
self.score_label = tk.Label(self, text="得分: {}".format(self.score))
self.score_label.pack()
self.time_label = tk.Label(self, text="时间: {}".format(self.time_left))
self.time_label.pack()
self.canvas = tk.Canvas(self, width=400, height=300)
self.canvas.pack()
self.start_button = tk.Button(self, text="开始", command=self.start_game)
self.start_button.pack()
self.stop_button = tk.Button(self, text="停止", command=self.stop_game)
self.stop_button.pack()
self.stop_button.config(state="disabled")
def generate_moles(self):
for i in range(10):
x = random.randint(50, 350)
y = random.randint(50, 250)
mole = self.canvas.create_image(x, y, image=self.mole_image, anchor="center")
self.moles.append(mole)
def start_game(self):
self.score = 0
self.time_left = 30
self.score_label.config(text="得分: {}".format(self.score))
self.time_label.config(text="时间: {}".format(self.time_left))
self.generate_moles()
self.start_button.config(state="disabled")
self.stop_button.config(state="normal")
self.canvas.bind("<Button-1>", self.whack_mole)
self.update_time()
def stop_game(self):
self.start_button.config(state="normal")
self.stop_button.config(state="disabled")
self.canvas.unbind("<Button-1>")
self.canvas.delete("all")
def update_time(self):
if self.time_left > 0:
self.time_left -= 1
self.time_label.config(text="时间: {}".format(self.time_left))
self.after(1000, self.update_time)
else:
self.stop_game()
def whack_mole(self, event):
for mole in self.moles:
x1, y1, x2, y2 = self.canvas.bbox(mole)
if x1 <= event.x <= x2 and y1 <= event.y <= y2:
self.score += 1
self.score_label.config(text="得分: {}".format(self.score))
self.canvas.delete(mole)
self.moles.remove(mole)
if not self.moles:
self.generate_moles()
root = Game()
root.mole_image = tk.PhotoImage(file="mole.png")
root.mainloop()
```
需要注意的是,这个代码需要一张名为`mole.png`的地鼠图片来显示地鼠,你需要将这张图片放在与代码相同的目录下,并将代码中的`file="mole.png"`改为地鼠图片的文件名。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)