Pygame-Entwicklung kleiner Spiele – Greedy Snake

Urheberrechtserklärung: Originalität ist nicht einfach, Plagiate und Nachdruck sind in diesem Artikel verboten und Verstöße müssen untersucht werden!

1. Entwicklungsumgebung und Anforderungsanalyse

Entwicklungsumgebung: Windows10 Python3.6.4
Drittanbieter-Bibliothek: Pygame1.9.6
IDE: PyCharm/Sublime Text

Anforderungsanalyse:

  • UI-Schnittstelle
  • Geschwindigkeit, Spielstand
  • Spiellogik
  • Schlangenrichtung, Futter
  • Gitterlinien, Hintergrundfarbe

2. Funktionsmodule

Import von Bibliotheken Dritter:

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

Spielinitialisierung und globale Variablendefinition:

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)         # 红色,GAME OVER 的字体颜色
BGCOLOR = (40, 40, 60)      # 背景色

Schlange initialisieren:

# 初始化蛇
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

Lebensmittelkreation:

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

Hintergrundfarbe:

# 填充背景色
screen.fill(BGCOLOR)

Gitterlinien:

# 画网格线 竖线
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)

Spiel-Sprite-Zeichnung:

# 画食物
if not game_over:
    # 避免 GAME OVER 的时候把 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}')

Das Hauptprogramm läuft:

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)  # GAME OVER 的字体
    fwidth, fheight = font2.size('GAME OVER')



3. Spieleffekt

Fügen Sie hier eine Bildbeschreibung ein

4. Laden Sie den vollständigen Quellcode herunter

Download des Quellcodes für die Pygame-Spieleentwicklung:

  • Folgen Sie meinem ursprünglichen öffentlichen WeChat-Konto : „ Xiaohong Xingkong Technology “, antworten Sie mit „ Greedy Snake “, um den Quellcode zu erhalten

5. Autoreninformationen

Autor: Xiaohong's Fishing Daily, Ziel: Programmieren interessanter machen!

Ursprünglicher öffentlicher WeChat-Account: „ Xiahong Xingkong Technology “, der sich auf Algorithmen, Crawler, Websites, Spieleentwicklung, Datenanalyse, Verarbeitung natürlicher Sprache, KI usw. konzentriert und sich auf Ihre Aufmerksamkeit freut. Lassen Sie uns gemeinsam wachsen und programmieren!

Urheberrechtshinweis: Dieser Artikel verbietet Plagiate und Nachdrucke und Verstöße müssen untersucht werden!

Supongo que te gusta

Origin blog.csdn.net/qq_44000141/article/details/122148019
Recomendado
Clasificación