python小游戏小恐龙积分制带界面
时间: 2023-09-06 10:11:49 浏览: 190
以下是一个小恐龙游戏的 Python 代码,增加了积分制和界面:
```python
import tkinter as tk
import random
class DinosaurGame:
def __init__(self, master):
self.master = master
self.master.title("小恐龙游戏")
# 加载图片
self.dinosaur_image = tk.PhotoImage(file="dinosaur.png")
self.cactus_image = tk.PhotoImage(file="cactus.png")
# 设置游戏参数
self.dinosaur_x = 50
self.dinosaur_y = 200
self.cactus_x = 600
self.cactus_y = 210
self.speed = 10
self.score = 0
# 创建界面元素
self.canvas = tk.Canvas(self.master, width=800, height=400)
self.canvas.pack()
self.canvas.focus_set()
self.canvas.bind("<space>", self.jump)
self.canvas.bind("<Up>", self.jump)
self.dinosaur = self.canvas.create_image(self.dinosaur_x, self.dinosaur_y, image=self.dinosaur_image)
self.cactus = self.canvas.create_image(self.cactus_x, self.cactus_y, image=self.cactus_image)
self.label = tk.Label(self.master, text="得分:0")
self.label.pack()
# 启动游戏循环
self.game_loop()
def jump(self, event):
self.dinosaur_y -= 50
def game_loop(self):
# 移动恐龙
self.dinosaur_y += 10
self.canvas.coords(self.dinosaur, self.dinosaur_x, self.dinosaur_y)
# 移动仙人掌
self.cactus_x -= self.speed
self.canvas.coords(self.cactus, self.cactus_x, self.cactus_y)
# 检测碰撞
if self.dinosaur_x + 50 > self.cactus_x and self.dinosaur_x < self.cactus_x + 50 and self.dinosaur_y + 50 > self.cactus_y:
self.label.config(text="游戏结束,得分:" + str(self.score))
self.canvas.unbind("<space>")
self.canvas.unbind("<Up>")
else:
# 增加得分
if self.cactus_x < 0:
self.cactus_x = 600
self.score += 10
self.speed += 1
self.label.config(text="得分:" + str(self.score))
# 更新游戏界面
self.master.after(50, self.game_loop)
root = tk.Tk()
app = DinosaurGame(root)
root.mainloop()
```
在这个版本的游戏中,我们使用了 Tkinter 模块创建了一个简单的 GUI 界面,玩家可以通过按空格键或向上键让恐龙跳跃。每次跳过一个仙人掌玩家得 10 分,速度也会加快。如果恐龙碰到了仙人掌,游戏结束,输出玩家的得分。
阅读全文