鱼C论坛

 找回密码
 立即注册
查看: 2432|回复: 2

[分享] 队列贪吃蛇

[复制链接]
发表于 2020-4-10 20:56:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import pygame
import game

# 初始化
pygame.init()  # pygame 初始化
screen = pygame.display.set_mode((800, 600))  # 创建屏幕
clock = pygame.time.Clock()  # 生成游戏时钟
Snaker = game.Snake(screen) # 创建游戏环境
direction = 'left' # 初始运动方向


snake = pygame.image.load('pygame/image/贪吃蛇图片.png')


snake_list = [[400,400],[420,400],[440,400],[460,400],[480,400]]

# 主循环
while True:
    # 事件检测
    for event in pygame.event.get():
        # 退出事件
        if event.type == pygame.QUIT:
            pygame.quit()
        # 控制方向功能
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP:
                direction = 'up'
            if event.key == pygame.K_DOWN:
                direction = 'down'
            if event.key == pygame.K_LEFT:
                direction = 'left'
            if event.key == pygame.K_RIGHT:
                direction = 'right'

    # 不能直接改变为相反的方向
    direction = Snaker.change_direction(direction)

   
    if direction == 'up':
        head_x = snake_list[0][0]
        head_y = snake_list[0][1] -20
        head = [head_x,head_y]
        snake_list.insert(0,head)
        snake_list.pop()
    if direction == 'down':
        head_x = snake_list[0][0]
        head_y = snake_list[0][1] +20
        head = [head_x,head_y]
        snake_list.insert(0,head)
        snake_list.pop()
    if direction == 'left':
        head_x = snake_list[0][0] -20
        head_y = snake_list[0][1]
        head = [head_x,head_y]
        snake_list.insert(0,head)
        snake_list.pop()
    if direction == 'right':
        head_x = snake_list[0][0] +20
        head_y = snake_list[0][1]
        head = [head_x,head_y]
        snake_list.insert(0,head)
        snake_list.pop()



    # 绘制背景
    screen.fill((226, 233, 254))
    # 绘制方格网
    Snaker.draw_grid()
    # 绘制食物
    snake_list = Snaker.eat(snake_list)
    for position in snake_list:
        screen.blit(snake,(position[0],position[1]))


    # 规则一:吃到自己死亡
    Snaker.eat_myself(snake_list)
    # 规则二:碰到墙死亡
    Snaker.fail(snake_list[0])
    # 显示游戏结果
    Snaker.dreaw_score()
    # 点击退出
    Snaker.click_quit()
    # 更新屏幕
    pygame.display.update()
    # 设置游戏速度
    clock.tick(8)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-10 22:07:24 | 显示全部楼层
报错兄嘚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-11 15:03:22 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 12:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表