pygame小游戏开发 – 贪吃蛇

版权声明:原创不易,本文禁止抄袭、转载,侵权必究!

目录

*
一、开发环境&需求分析
二、功能模块
三、游戏效果
四、完整源码下载
五、作者Info

一、开发环境&需求分析

开发环境 :Windows10 Python3.6.4
第三方库 :Pygame1.9.6
IDE :PyCharm/Sublime Text

需求分析:

  • UI界面
  • 速度、游戏得分
  • 游戏逻辑
  • 蛇的方向、食物
  • 网格线、背景色

二、功能模块

第三方库的导入:

import random
import sys
import time
import pygame
from pygame.locals import *
from collections import deque

游戏初始化及全局变量定义:

SCREEN_WIDTH = 600
SCREEN_HEIGHT = 480
SIZE = 20
LINE_WIDTH = 1

SCOPE_X = (0, SCREEN_WIDTH // SIZE - 1)
SCOPE_Y = (2, SCREEN_HEIGHT // SIZE - 1)

FOOD_STYLE_LIST = [(10, (255, 100, 100)), (20, (100, 255, 100)), (30, (100, 100, 255))]

LIGHT = (100, 100, 100)
DARK = (200, 200, 200)
BLACK = (0, 0, 0)
RED = (200, 30, 30)
BGCOLOR = (40, 40, 60)

初始化蛇:


def init_snake():
    snake = deque()
    snake.append((2, SCOPE_Y[0]))
    snake.append((1, SCOPE_Y[0]))
    snake.append((0, SCOPE_Y[0]))
    return snake

食物创建:

def create_food(snake):
    food_x = random.randint(SCOPE_X[0], SCOPE_X[1])
    food_y = random.randint(SCOPE_Y[0], SCOPE_Y[1])
    while (food_x, food_y) in snake:

        food_x = random.randint(SCOPE_X[0], SCOPE_X[1])
        food_y = random.randint(SCOPE_Y[0], SCOPE_Y[1])
    return food_x, food_y

背景色:


screen.fill(BGCOLOR)

网格线:


for x in range(SIZE, SCREEN_WIDTH, SIZE):
    pygame.draw.line(screen, BLACK, (x, SCOPE_Y[0] * SIZE), (x, SCREEN_HEIGHT), LINE_WIDTH)

for y in range(SCOPE_Y[0] * SIZE, SCREEN_HEIGHT, SIZE):
    pygame.draw.line(screen, BLACK, (0, y), (SCREEN_WIDTH, y), LINE_WIDTH)

游戏精灵绘制:


if not game_over:

    pygame.draw.rect(screen, food_style[1], (food[0] * SIZE, food[1] * SIZE, SIZE, SIZE), 0)

for s in snake:
    pygame.draw.rect(screen, DARK, (s[0] * SIZE + LINE_WIDTH, s[1] * SIZE + LINE_WIDTH,
                                    SIZE - LINE_WIDTH * 2, SIZE - LINE_WIDTH * 2), 0)

print_text(screen, font1, 30, 7, f'速度: {score//100}')
print_text(screen, font1, 450, 7, f'得分: {score}')

主程序运行:

def main():
    pygame.init()
    screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
    pygame.display.set_caption('贪吃蛇')

    font1 = pygame.font.SysFont('SimHei', 24)
    font2 = pygame.font.Font(None, 72)
    fwidth, fheight = font2.size('GAME OVER')

三、游戏效果

pygame小游戏开发 - 贪吃蛇

; 四、完整源码下载

pygame游戏开发源码下载:

  • 关注我的 原创微信公众号:『 小鸿星空科技』,回复『 贪吃蛇』获取源码

五、作者Info

作者:小鸿的摸鱼日常,Goal:让编程更有趣!

原创微信公众号:『 小鸿星空科技』,专注于算法、爬虫,网站,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载 ,侵权必究!

Original: https://blog.csdn.net/qq_44000141/article/details/122148019
Author: 小鸿的摸鱼日常
Title: pygame小游戏开发 – 贪吃蛇

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/780617/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球