Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

PyTetris - 俄罗斯方块游戏

image-20250329232223408

一个使用Python和Pygame实现的经典俄罗斯方块游戏,包含现代游戏机制优化。

功能特性

  • 🎮 经典俄罗斯方块核心玩法
  • 🟦 7种标准方块形状(I, O, T, S, Z, J, L)
  • 🎨 真彩色方块与网格系统
  • 👻 幽灵方块投影显示
  • ⏳ 锁定延迟机制(L Lock)
  • 📊 动态计分系统
  • 🔄 下一个方块预览
  • 🕹️ 支持键盘控制
  • 🚀 可调节下落速度

安装与运行

环境要求

  • Python 3.7+
  • Pygame 2.0+

快速开始

# 安装依赖
pip install pygame

# 运行游戏
python main.py

游戏操作

按键 功能
← → 左右移动方块
旋转方块
软降
空格键 硬降(暂未实现)
P 暂停(暂未实现)
Q / ESC 退出游戏

实现细节

核心机制

  • 形状定义:使用相对坐标定义方块形状
SHAPES = [
    [[1, 5, 9, 13], [4, 5, 6, 7]],  # I型
    [[1, 2, 5, 6]]                   # O型
]
  • 网格系统:10x20的经典游戏区域
GRID_WIDTH = 10
GRID_HEIGHT = 20
  • 碰撞检测:实时验证方块位置合法性
def valid_space(shape, grid):
    # 复杂的位置验证逻辑...
  • 行消除:智能行清除与方块下落
def clear_rows(grid, locked):
    # 包含锁定延迟处理...

特色实现

  1. 幽灵方块投影
# 绘制半透明投影
s = pygame.Surface((GRID_SIZE-1, GRID_SIZE-1))
s.set_alpha(70)
s.fill(current_piece.color)
  1. 锁定延迟机制
lock_delay = 300  # 300ms锁定延迟
collision_start_time = None  # 碰撞计时器
  1. 下一个方块预览
# 在右侧显示下一个方块
preview_x = TOP_LEFT_X + GRID_WIDTH*GRID_SIZE + 50
preview_y = TOP_LEFT_Y + 100

贡献指南

欢迎通过issue或pull request参与改进:

  1. 报告游戏bug
  2. 提议新功能
  3. 改进代码结构
  4. 优化游戏平衡性

About

简易俄罗斯方块,基于pygame,有幽灵方块提示。

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages