import pygameimport random# 初始化游戏pygame.init()# 定义游戏窗口的大小window_width = 800window_height = 600# 定义贪吃蛇的大小和速度snake_size = 20snake_speed = 15# 定义颜色white = (255, 255, 255)black = (0, 0, 0)red = (255, 0, 0)# 创建游戏窗口window = pygame.display.set_mode((window_width, window_height))pygame.display.set_caption(‘贪吃蛇’)# 定义贪吃蛇的初始位置snake_x = window_width / 2snake_y = window_height / 2# 定义贪吃蛇的初始移动方向snake_x_change = 0snake_y_change = 0# 定义贪吃蛇的初始长度snake_length = 1snake_body = []# 定义食物的初始位置food_x = round(random.randrange(0, window_width – snake_size) / 20.0) * 20.0food_y = round(random.randrange(0, window_height – snake_size) / 20.0) * 20.0# 定义分数score = 0# 游戏结束标志game_over = False# 游戏主循环while not game_over: # 处理事件 for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: snake_x_change = -snake_size snake_y_change = 0 elif event.key == pygame.K_RIGHT: snake_x_change = snake_size snake_y_change = 0 elif event.key == pygame.K_UP: snake_y_change = -snake_size snake_x_change = 0 elif event.key == pygame.K_DOWN: snake_y_change = snake_size snake_x_change = 0 # 更新贪吃蛇的位置 snake_x += snake_x_change snake_y += snake_y_change # 判断是否吃到食物 if snake_x == food_x and snake_y == food_y: score += 1 food_x = round(random.randrange(0, window_width – snake_size) / 20.0) * 20.0 food_y = round(random.randrange(0, window_height – snake_size) / 20.0) * 20.0 snake_length += 1 # 绘制游戏窗口 window.fill(black) pygame.draw.rect(window, red, [food_x, food_y, snake_size, snake_size]) snake_head = [] snake_head.append(snake_x) snake_head.append(snake_y) snake_body.append(snake_head) if len(snake_body) > snake_length: del snake_body[0] for segment in snake_body[:-1]: if segment == snake_head: game_over = True for segment in snake_body: pygame.draw.rect(window, white, [segment[0], segment[1], snake_size, snake_size]) pygame.display.update() # 控制游戏速度 clock = pygame.time.Clock() clock.tick(snake_speed)# 退出游戏pygame.quit()
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后查看评论内容