Commit 8de6b475 by BellCodeEditor

auto save

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