update
This commit is contained in:
parent
b823e3a41a
commit
a2774513cb
107
README.md
Normal file
107
README.md
Normal file
@ -0,0 +1,107 @@
|
||||
# AI头控球球大逃亡
|
||||
|
||||
## 简介
|
||||
|
||||
这是一个基于 Pygame 和 MediaPipe 实现的小游戏。玩家通过控制自己的头部移动来避开下落的障碍物,同时收集时间值。使用计算机的摄像头进行人脸检测,动态控制游戏中的小球进行左右移动。
|
||||
|
||||
## 特性
|
||||
|
||||
- 使用 **MediaPipe** 进行实时人脸检测
|
||||
- 用 **Pygame** 构建游戏界面
|
||||
- 障碍物动态生成,增加游戏挑战性
|
||||
- 实时计时显示,记录游戏时间
|
||||
- 支持窗口化操作和实时反馈
|
||||
|
||||
## 环境要求
|
||||
|
||||
- Python 3.12.x
|
||||
- 使用 PDM 进行依赖管理
|
||||
|
||||
## 使用 PDM 安装依赖
|
||||
|
||||
首先,确保你的系统上已经安装了 PDM。然后在项目根目录下,通过以下命令安装项目依赖:
|
||||
|
||||
```bash
|
||||
pdm install
|
||||
```
|
||||
|
||||
指定 Python 版本为 3.12 的依赖将会被安装,如下所列:
|
||||
|
||||
```toml
|
||||
[project]
|
||||
name = "HeadBallGame"
|
||||
version = "0.1.0"
|
||||
description = "Default template for PDM package"
|
||||
authors = [
|
||||
{name = "Zengtudor", email = "Zengtudor@outlook.com"},
|
||||
]
|
||||
dependencies = ["opencv-python>=4.11.0.86", "mediapipe>=0.10.21", "numpy>=1.26.4", "pygame>=2.6.1"]
|
||||
requires-python = "==3.12.*"
|
||||
readme = "README.md"
|
||||
license = {text = "MIT"}
|
||||
|
||||
[tool.pdm]
|
||||
distribution = false
|
||||
```
|
||||
|
||||
## 使用方法
|
||||
|
||||
1. 确保你拥有正常工作的摄像头。
|
||||
2. 运行游戏的主程序:
|
||||
```bash
|
||||
pdm run python main.py
|
||||
```
|
||||
3. 根据摄像头的反馈,移动头部来控制游戏中的小球左右移动,避开障碍物。
|
||||
|
||||
## 代码示例
|
||||
|
||||
以下是游戏的核心代码片段,用于说明主要功能的实现:
|
||||
|
||||
```python
|
||||
import cv2
|
||||
import mediapipe as mp
|
||||
import pygame
|
||||
import time
|
||||
import random
|
||||
|
||||
# 游戏初始化
|
||||
pygame.init()
|
||||
font = pygame.font.Font(None, 36)
|
||||
screen = pygame.display.set_mode((600, 800))
|
||||
ball_radius = 20
|
||||
ball_color = (255, 105, 180)
|
||||
|
||||
# 摄像头初始化
|
||||
cap = cv2.VideoCapture(0)
|
||||
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
|
||||
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
|
||||
|
||||
# MediaPipe初始化
|
||||
mp_face = mp.solutions.face_detection
|
||||
face_detection = mp_face.FaceDetection(min_detection_confidence=0.5)
|
||||
|
||||
# 游戏逻辑和绘制函数
|
||||
clock = pygame.time.Clock()
|
||||
obstacles = []
|
||||
# ...(省略一些代码)...
|
||||
|
||||
def draw_ball(normalized_x, normalized_y):
|
||||
# ...(绘制小球及障碍物的逻辑)...
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 由于该游戏需要使用摄像头进行人脸检测和控制,请确保在良好的光线条件下进行游戏,以获得最佳效果。
|
||||
- 如果检测效果不佳,请尝试调整摄像头的位置。
|
||||
|
||||
## 贡献
|
||||
|
||||
欢迎任何对项目功能和性能的改进或反馈。您可以通过提交 issue 或 pull requests 的方式贡献。
|
||||
|
||||
## License
|
||||
|
||||
本项目采用 MIT 许可证,具体内容请查阅 LICENSE 文件。
|
||||
|
||||
---
|
||||
|
||||
希望这个游戏能为您带来乐趣!尽情享受游戏吧!
|
Loading…
Reference in New Issue
Block a user