# traffic_light **Repository Path**: babytech/traffic_light ## Basic Information - **Project Name**: traffic_light - **Description**: 红绿灯演示程序 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-01 - **Last Updated**: 2025-03-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 交通信号灯模拟程序 一个基于Pygame的交通信号灯模拟程序,演示车辆和行人在红绿灯控制下的通行规则。 ## 功能特性 - 🚦 真实的红绿灯周期控制(绿灯5秒/黄灯1.5秒/红灯9.5秒) - 🚗 5种不同颜色的车辆模拟 - 🚶 哆啦A梦形象的行人动画 - 🖥️ 60FPS流畅动画效果 - 🎮 交互式开始菜单(Play/Exit按钮) ## 程序结构 ```python main.py ├── 全局变量(窗口尺寸、颜色、状态) ├── MoveObject类(移动对象逻辑) ├── light_thread函数(信号灯控制线程) ├── Button类(按钮UI组件) ├── starting_screen函数(开始界面) └── 主程序(资源加载、对象初始化、主循环) ``` ## 核心逻辑 ### 信号灯周期控制 ```python:main.py 132-149行 # 信号灯状态切换逻辑 if count < 1000: current_color = "green" elif count < 1300: current_color = "yellow" elif count < 3200: current_color = "red" else: count = 0 ``` ### 移动对象控制 ```python:main.py 35-100行 class MoveObject: def update(self, signal_color): # 车辆控制逻辑(绿灯行,非绿灯减速) # 行人控制逻辑(红灯行,非红灯停止) ``` ## 运行要求 - Python 3.6+ - Pygame 2.0+ - 资源文件目录 `resource/` ## 使用说明 1. 安装依赖 ```bash pip install pygame ``` 2. 运行程序 ```bash python main.py ``` ## 界面说明 - 开始界面:包含居中显示的Play/Exit按钮 - 主界面元素: - 动态变化的道路背景 - 实时信号灯状态显示 - 车辆和行人动画 - 60FPS帧率控制 ## 控制规则 | 信号灯 | 车辆行为 | 行人行为 | |--------|----------------|----------------| | 🟢 绿灯 | 正常通行 | 停止等待 | | 🟡 黄灯 | 减速至停止线前 | 准备开始移动 | | 🔴 红灯 | 完全停止 | 正常通过马路 |