tkinter做简易枪战游戏代码
时间: 2024-02-04 09:43:47 浏览: 29
以下是一个简单的枪战游戏的 tkinter 代码示例:
```python
import tkinter as tk
import random
class Game:
def __init__(self):
self.root = tk.Tk()
self.canvas = tk.Canvas(self.root, width=600, height=400, bg="white")
self.canvas.pack()
self.player = self.canvas.create_rectangle(250, 350, 350, 375, fill="blue")
self.score_label = tk.Label(self.root, text="Score: 0")
self.score_label.pack()
self.targets = []
self.score = 0
self.game_over = False
self.root.bind("<Left>", self.move_left)
self.root.bind("<Right>", self.move_right)
self.root.bind("<space>", self.shoot)
self.root.after(1000, self.create_targets)
self.root.mainloop()
def move_left(self, event):
if not self.game_over:
self.canvas.move(self.player, -20, 0)
def move_right(self, event):
if not self.game_over:
self.canvas.move(self.player, 20, 0)
def shoot(self, event):
if not self.game_over:
x1, y1, x2, y2 = self.canvas.coords(self.player)
x = (x1 + x2) / 2
y = y1
for target in self.targets:
if self.canvas.coords(target)[1] <= y <= self.canvas.coords(target)[3]:
self.canvas.delete(target)
self.targets.remove(target)
self.score += 1
self.score_label.config(text=f"Score: {self.score}")
break
def create_targets(self):
if not self.game_over:
x = random.randint(0, 550)
y = 0
target = self.canvas.create_rectangle(x, y, x+50, y+50, fill="red")
self.targets.append(target)
self.root.after(1000, self.create_targets)
self.check_game_over()
def check_game_over(self):
if not self.game_over:
for target in self.targets:
if self.canvas.coords(target)[3] >= 375:
self.game_over = True
self.canvas.create_text(300, 200, text="Game Over", font=("Arial", 50))
break
if not self.game_over:
self.root.after(100, self.check_game_over)
game = Game()
```
这个游戏中,玩家可以使用左右箭头键移动蓝色方块,使用空格键射击红色方块。每击中一个红色方块,得分加一。当红色方块到达最下方时,游戏结束。
注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。