上一篇 分享链接 返回 返回顶部

简单代码搞定:Python版贪吃蛇游戏编程实战

发布人:不二云 发布时间:3小时前 阅读量:2

简单代码编程:贪吃蛇

贪吃蛇是一款经典的单机游戏,其玩法简单但充满乐趣。它通过对蛇的移动控制,使其吃到“食物”,从而增长身体,若碰到边界或自身则游戏结束。这篇文章将带领大家使用 Python 语言和 pygame 图形库来实现一个简单的贪吃蛇游戏。

简单代码编程 贪吃蛇

一、环境和库的准备

首先,我们需要确保系统已安装 Python。可以在Python 官网 下载并安装适合操作系统的版本。接着,使用 pip 包管理工具安装 pygame 库。打开终端或命令提示符,输入以下命令:

简单代码编程 贪吃蛇
pip install pygame

安装完成后,便可以开始编写贪吃蛇游戏代码。

简单代码编程 贪吃蛇

二、游戏核心思路

  1. 初始化窗口:创建一个用于显示游戏画面的窗口,设置其大小。
  2. 定义蛇的属性和行为:蛇由一系列的方块或像素组成,需要记录蛇的位置以及移动方向。初始时,蛇的长度为一个方块,且处在一个固定的位置。
  3. 生成食物:在游戏窗口内的随机位置生成食物,确保食物位置不与蛇身重叠。
  4. 游戏逻辑处理:每一帧更新蛇的位置,根据蛇的移动方向改变其头部坐标,并移除蛇尾方块,模拟蛇的移动效果。当蛇吃到食物时,增加蛇的长度,同时生成新的食物。如果蛇碰到边界或者自身的身体,游戏结束。
  5. 绘制游戏画面:将蛇和食物绘制在游戏窗口中,根据游戏状态(进行中或结束)显示相应的信息。

三、具体代码实现

以下是贪吃蛇游戏的完整代码:

import pygame
import random

# 初始化 Pygame
pygame.init()

# 定义窗口大小
WIDTH, HEIGHT = 400, 300
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption('贪吃蛇')

# 定义颜色
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
BLACK = (0, 0, 0)

# 蛇的大小和初始位置
snake_size = 10
snake_body = [(WIDTH // 2, HEIGHT // 2)]
snake_direction = [0, 0]

# 食物位置
food_pos = (random.randint(0, (WIDTH - snake_size) // snake_size) * snake_size,
            random.randint(0, (HEIGHT - snake_size) // snake_size) * snake_size)

# 游戏时钟,控制帧率
clock = pygame.time.Clock()

# 游戏是否结束
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_UP and snake_direction != [0, snake_size]:
                snake_direction = [0, -snake_size]
            elif event.key == pygame.K_DOWN and snake_direction != [0, -snake_size]:
                snake_direction = [0, snake_size]
            elif event.key == pygame.K_LEFT and snake_direction != [snake_size, 0]:
                snake_direction = [-snake_size, 0]
            elif event.key == pygame.K_RIGHT and snake_direction != [-snake_size, 0]:
                snake_direction = [snake_size, 0]

    if not game_over:
        # 更新蛇的位置
        head_x, head_y = snake_body[0]
        new_head = (head_x + snake_direction[0], head_y + snake_direction[1])

        # 检测碰撞
        if (new_head in snake_body or
                new_head[0] < 0 or new_head[0] >= WIDTH or
                new_head[1] < 0 or new_head[1] >= HEIGHT):
            game_over = True
        else:
            snake_body.insert(0, new_head)

        # 判断是否吃到食物
        if new_head == food_pos:
            food_pos = (random.randint(0, (WIDTH - snake_size) // snake_size) * snake_size,
                        random.randint(0, (HEIGHT - snake_size) // snake_size) * snake_size)
        else:
            snake_body.pop()

    # 清空屏幕
    screen.fill(BLACK)

    # 绘制食物
    pygame.draw.rect(screen, RED, [food_pos[0], food_pos[1], snake_size, snake_size])

    # 绘制蛇
    for segment in snake_body:
        pygame.draw.rect(screen, GREEN, [segment[0], segment[1], snake_size, snake_size])

    pygame.display.update()
    clock.tick(15)

pygame.quit()

这段代码首先初始化 pygame,创建游戏窗口并设置窗口标题。接着定义了颜色常量以及蛇、食物的初始位置和大小等属性。在游戏循环中,通过捕获键盘事件来改变蛇的移动方向,并在每一帧更新蛇的位置,同时检测碰撞和食物的消耗情况。绘制部分负责将食物、蛇和游戏信息绘制到屏幕上,从而让玩家看到游戏的动态变化。当游戏结束时,退出 pygame

通过这段代码,我们可以体验到从零开始构建一个贪吃蛇游戏的简单快乐。尽管代码结构较为基础,但其中涉及的碰撞检测、随机生成、图形绘制等概念,是理解游戏开发的重要基础。

目录结构
全文
linux运维工具推荐

Linux工具推荐:

支持一键换源/安装宝塔/1p/系统优化等,运维好帮手!Github开源工具,欢迎star~

https://cb2.cn/helpcontent/230.html

(开源地址:https://github.com/JiaP/cb2cn

---------------------------------------

邀请好友注册购买可获得高额佣金!

点击立即开通推介计划!

不二云计算不二云 B站视频创作奖励计划

查看详情 关闭
linux运维工具推荐