Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

Administrator / pygame_lesson11_diy01

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Commit b7d9335f authored 2 years ago by BellCodeEditor's avatar BellCodeEditor
Browse files
Options
  • Browse Files
  • Download
  • Email Patches
  • Plain Diff

auto save

parent 54e06744
Hide whitespace changes
Inline Side-by-side
Showing with 30 additions and 9 deletions
  • my_Tetris.py
my_Tetris.py
View file @ b7d9335f
......@@ -7,7 +7,9 @@ score = 0
grid_size = 20 # 格子大小
grid_num_width = 15 # 横向格子数量
grid_num_height = 25 # 纵向格子数量
FPS = 30
FPS = 30 # 帧率
count = 0 # 设置变量count,初始值为0
states = False # 创建变量states来设置是否创建新方块,初始值设为False
# 创建窗口
screen = pygame.display.set_mode((460, 500))
......@@ -45,14 +47,6 @@ cube_colors = [
(255, 204, 0), (204, 0, 51),(255, 0, 51), (0, 102, 153),
(153, 0, 51), (204, 255, 102), (255, 153, 0)]
center = [2, 8] # 第2行第8列
# 调用random模块中的choice方法从7种方块列表中随机选出一个,并赋值给变量shape
shape = random.choice(shape_list)
# 随机形状索引
index = random.randint(0, len(shape)-1) # 随机选出一个方块形状绘制出来
current_shape = shape[index] # 生成索引下标
color = random.choice(cube_colors) # 方块颜色调用random模块的choice方法随机选取一种
def check(center): # def定义函数check(),参数center表示行、列
for cube in current_shape: # for循环
# 计算出移动后每个小方块的行、列位置
......@@ -82,6 +76,33 @@ while True:
if check(center) == False:
center[0] = center[0] - 1 # 上移1列,位置还原
# 设置向上方向键来触发俄罗斯方块变形的功能
elif event.key == locals.K_UP: # 向上
old_index = index # 用变量old_index将原来的索引index备份下来
index += 1 # 表示索引的变量index增加1
if index >= len(shape): # if判断变量index的值是否与形状列表一样长
index = 0 # 变量indfex设为0
current_shape = shape[index] # 根据索引取出对应的方块形状
if check(center) == False: # if判断是否超出范围,用自定义check()函数进行检测
index = old_index # 将索引index的值还原回来
current_shape = shape[index] # 重新取出原来的形状
if states == False: # if判断变量states的值为False时,创建新方块
states = True # 变量states的值设为Ture
center = [2, 8] # 第2行第8列
# 调用random模块中的choice方法从7种方块列表中随机选出一个,并赋值给变量shape
shape = random.choice(shape_list)
# 随机形状索引
index = random.randint(0, len(shape)-1) # 随机选出一个方块形状绘制出来
current_shape = shape[index] # 生成索引下标
color = random.choice(cube_colors) # 方块颜色调用random模块的choice方法随机选取一种
count += 1 # 用变量count记录while循环运行次数
if count % FPS == 0: # if判断变量count除以FPS帧率等于0,如果能够整除则自动下移一行
center[0] = center[0] + 1 # 中心点下移1行
# if判断方块有没有超出网格范围,使用检查函数进行检测
if check(center) == False:
center[0] = center[0] - 1 # 上移1列,位置还原
states = False # 方块下降到底部时,重新将变量states的值设为False
# 将背景图画上去
screen.blit(background, (0, 0))
# 计算出所有小方块的行、列位置
......
This diff is collapsed. Click to expand it.
  • Write
  • Preview
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment