用列表表示蛇身

1如何存储多个数据
2使用列表储存多个数据对象
3利用for循环绘制蛇的每一节


clock = pygame.time.Clock()
green = (0, 255, 0)#浅绿色
dark_grenn = (0, 204, 0)#深绿色
body_size = 20
snake_body = [
    pygame.Rect(100, 100, body_size, body_size),#头部
    pygame.Rect(80, 100, body_size, body_size),
    pygame.Rect(60, 100, body_size, body_size)
]#初始状态下蛇的身体有 3 节
running = True
while running:
    screen.fill((0, 0, 0))
    events = pygame.event.get()#获取所有事件
    for e in events:
        if e.type == pygame.QUIT:#响应退出时间
            running = False
    for body in snake_body: # 把 snake_body 列表里的每个矩形都往右移动一个单位
        #body.x 是当前矩形左上角横坐标:body.y 是当前矩形左上角的纵坐标
        body. x+= 1
        #body.y = body.y 纵坐标不变, 直接省略
    for body in snake_body:#遍历每一个矩形(body)
        pygame.draw.rect(screen, green, body)#在screen上画出绿色的矩形
    pygame.draw.rect(screen, dark_grenn, snake_body[0])#用深绿色画出头部矩形, 效果:覆盖刚出来的浅绿色头部
    pygame.display.update()#刷新屏幕
    clock.tick(60)

pygame.quit() #释放资源

posted @ 2025-12-28 17:22  王奕健  阅读(0)  评论(0)    收藏  举报