Commit 8de6b475 by BellCodeEditor

auto save

parent 0932025f
Showing with 29 additions and 33 deletions
...@@ -16,51 +16,46 @@ clock = pygame.time.Clock() # pygame时钟,控制游戏速度(帧数) ...@@ -16,51 +16,46 @@ clock = pygame.time.Clock() # pygame时钟,控制游戏速度(帧数)
background = pygame.image.load('bg.png') background = pygame.image.load('bg.png')
font = pygame.font.Font('STKAITI.TTF', 60) # 字体 font = pygame.font.Font('STKAITI.TTF', 60) # 字体
# 创建列表 center = [2,8] # 中心点,2行8列
center = [2, 8] # 用变量center表示小方块所在位置,参数1行,参数2列 curr_shape = [(0, -1), (0, 0), (0, 1), (0, 2)] # 当前形状
# 创建列表保存T字型方块
current_shape = [(0, -1), (0, 0), (0, 1), (-1, 0)] # 4个方块位置
while True: while True:
for event in pygame.event.get(): for event in pygame.event.get():
if event.type == locals.QUIT: if event.type == locals.QUIT:
exit() exit()
# if判断按键是否按下
if event.type == locals.KEYDOWN: if event.type == locals.KEYDOWN:
# if判断是否按下右键
if event.key == locals.K_RIGHT: if event.key == locals.K_RIGHT:
if center[1] < 15: # if判断方块所在列小于15 if center[1] < 15:
center[1] += 1 # 让列表元素2增加1,向右移动 center[1] = center[1]+1
# 继续判断是否按下左键
elif event.key == locals.K_LEFT: elif event.key == locals.K_LEFT:
if center[1] > 1: # if判断方块所在列大于1 if center[1] > 1:
center[1] -= 1 # 让列表元素2减少1,向左移动 center[1] = center[1] - 1
# 继续判断是否按下下键
elif event.key == locals.K_DOWN: elif event.key == locals.K_DOWN:
if center[0] < 25: # if判断方块所在行小于25 if center[0] < 25:
center[0] += 1 # 让列表元素1增加1,向下移动 center[0] = center[0] + 1
# 将背景图画上去 # 将背景图画上去
screen.blit(background, (0, 0)) screen.blit(background, (0, 0))
# 计算出所有小方块的行、列位置
current_pos =[] # 创建空列表current_pos,用来保存每个小方块所在行、列 curr_pos = []
for cube in current_shape: # 对列表进行遍历 for cube in curr_shape: # cube 立方体
# 让每个小方块的位置与中心点所在行、列相加 aa = (cube[0] + center[0], cube[1] + center[1]) #用相对位置加上屏幕中心点所在的位置
pos = (cube[0] + center[0], cube[1] + center[1]) curr_pos.append(aa)
# 添加到current_pos列表中 # 取出所有小方块的行、列位置,计算坐标,绘制俄罗斯方块
current_pos.append(pos) for cube in curr_pos:
# 绘制小方块 pygame.draw.rect(screen, (153, 0, 102),
for cube in current_pos: # 对current_pos列表进行遍历 (cube[1] * 20-20, cube[0] * 20-20,
# 用pygame.draw.rect()方法,参数1窗口,参数2红色,参数3xy坐标及宽高,参数4线宽 grid_size, grid_size),
pygame.draw.rect(screen, (255, 0, 0), 0)
(cube[1] * 20-20, cube[0] * 20-20, 20, 20), 0) pygame.draw.rect(screen, (255, 255, 255),
# 用pygame.draw.rect()方法,参数1窗口,参数2白色,参数3xy坐标及宽高,参数4线宽 (cube[1] * 20-20, cube[0] * 20-20,
pygame.draw.rect(screen, (255, 255, 255), grid_size, grid_size),
(cube[1] * 20-20, cube[0] * 20-20, 20, 20), 1) 1)
# 用font.render()方法给text_surface赋值 # 得分
text_surface = font.render(str(score), True, (0, 0, 0)) score_text = font.render(str(score), True, (0, 0, 0))
# 将分数渲染到右边的分数窗口(350,70) screen.blit(score_text , (350,70))
screen.blit(text_surface, (350,70))
# 刷新画面 # 刷新画面
pygame.display.update() pygame.display.update()
clock.tick(FPS) clock.tick(FPS)
\ No newline at end of file
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