利用pygame写贪吃蛇小游戏

博主通过python的pygame库,重温童年经典游戏贪吃蛇,详细介绍了如何编写这款游戏的简单版本,旨在分享编程乐趣,并承诺未来将更新更多版本。
摘要由CSDN通过智能技术生成

相信很多小伙伴在小时候都玩过贪吃蛇、超级玛丽、扫雷、魂斗罗、俄罗斯方块、58坦克等这些小游戏,这些小游戏我小时候都玩过;还记得当时家里有一台黑白电视,我当时特别喜欢玩游戏然后把零花钱全部存起来买了游戏器材。回忆起了小时候的画面,一种兴奋感就上来了,于是写了贪吃蛇小游戏来记录过去的美好时光。
环境: python3.8、pycharm
下面的代码注释也很详细,不了解pygame如何使用的小伙伴也可以看我之前写的超级详细的pygame,一起来学习吧!

# 导入模块及库
import pygame, sys, random
from pygame.math import Vector2


class Fruit:  # 创建水果类
    def __init__(self):
        self.randomize()  # 调用随机函数

    def draw_fruit(self):  # 绘制水果
        fruit_rect = pygame.Rect(int(self.pos.x * cell_size), int(self.pos.y * cell_size), cell_size,
                                 cell_size)  # 创建矩形需要四个不同方位
        screen.blit(apple, fruit_rect)

    def randomize(self):
        self.x = random.randint(0, cell_number - 1)  # 将X设为随机0~19
        self.y = random.randint(0, cell_number - 1)  # 将Y设为随机0~19
        self.pos = Vector2(self.x, self.y)  # 把X\Y放入向量内,二维数据


class Snake:  # 创建蛇类
    def __init__(self):
        self.body = [Vector2(5, 10), Vector2(6, 10), Vector2(7, 10)]  # 设置蛇在这三个区间中
        self.direction =
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是一个简单的贪吃蛇游戏Python 代码,使用 Pygame 库实现: ```python import pygame import random # 初始化 Pygame pygame.init() # 游戏窗口尺寸 width = 500 height = 500 # 定义颜色 white = (255, 255, 255) black = (0, 0, 0) red = (255, 0, 0) # 创建游戏窗口 game_display = pygame.display.set_mode((width, height)) pygame.display.set_caption('贪吃蛇') # 定义蛇的初始位置和大小 snake_block = 10 x1 = width / 2 y1 = height / 2 x1_change = 0 y1_change = 0 snake_list = [] length_of_snake = 1 # 定义食物的位置 foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0 # 定义字体 font_style = pygame.font.SysFont(None, 30) def message(msg, color): """ 显示消息 """ mesg = font_style.render(msg, True, color) game_display.blit(mesg, [width / 6, height / 3]) def game_loop(): """ 游戏循环 """ game_over = False game_close = False while not game_over: while game_close: game_display.fill(white) message('你输了!按 Q 退出或者按 C 重新开始', red) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: game_over = True game_close = False if event.key == pygame.K_c: game_loop() for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: x1_change = -snake_block y1_change = 0 elif event.key == pygame.K_RIGHT: x1_change = snake_block y1_change = 0 elif event.key == pygame.K_UP: y1_change = -snake_block x1_change = 0 elif event.key == pygame.K_DOWN: y1_change = snake_block x1_change = 0 # 判断蛇是否碰到边界 if x1 >= width or x1 < 0 or y1 >= height or y1 < 0: game_close = True # 更新蛇的位置 x1 += x1_change y1 += y1_change # 绘制背景和食物 game_display.fill(white) pygame.draw.rect(game_display, red, [foodx, foody, snake_block, snake_block]) # 绘制蛇 snake_head = [] snake_head.append(x1) snake_head.append(y1) snake_list.append(snake_head) if len(snake_list) > length_of_snake: del snake_list[0] for x in snake_list[:-1]: if x == snake_head: game_close = True for x in snake_list: pygame.draw.rect(game_display, black, [x[0], x[1], snake_block, snake_block]) pygame.display.update() # 判断是否吃到食物 if x1 == foodx and y1 == foody: foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0 foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0 length_of_snake += 1 # 控制游戏速度 clock = pygame.time.Clock() clock.tick(20) # 关闭 Pygame pygame.quit() quit() game_loop() ``` 上述代码实现了一个简单的贪吃蛇游戏,玩家可以使用方向键控制蛇的移动,尝试吃到食物并避免碰到边界或自身。你可以根据需要修改游戏窗口尺寸、游戏速度、背景颜色、字体等参数来改变游戏的表现形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao阿文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值