Python Pygame制作雪夜烟花景

目录
  • 运行截图
  • 实现过程
  • 核心代码
    • 基础架子
    • 下雪的过程
    • 雪落到地上堆起来的过程
    • 实现烟花的过程
  • 完整代码

运行截图

运行效果:

什么?你说你看不清烟花?那我换一种颜色,请点开看。

实现过程

准备工作

使用语言和框架:python、pygame。

安装pygame:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn pygame

你需要知道的基础知识

首先,pygame渲染是同步的,所以同屏渲染的点过多之后,就会造成卡顿的情况。

其次,pygame的代码逻辑是,周期性渲染一系列的屏,从而产生连续的动画。

你需要掌握的框架基础知识:

初始化过程

import pygame
pygame.init()
pygame.mixer.init()
pygame.font.init()

获取字体

myfont = pygame.font.SysFont('simHei', 30)
textsurface = myfont.render(a[i], False, random_color(150, 255))
screen.blit(textsurface, (80, 30))

画圈

pygame.draw.circle(screen, (snow_list[i][4], snow_list[i][5], snow_list[i][6]), snow_list[i][:2],
                           snow_list[i][3] - 3)

加载背景音乐

screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("新年快乐")
bg = pygame.image.load(bg_img)
pygame.mixer.music.load('D:\\CloudMusic\\小时姑娘 - 霞光-《精灵世纪》片尾曲.mp3')

核心代码

基础架子

首先,需要实现一个基础的事件循环的架子,如下:

def main():
    global show_n
    global fk_list
    bg_size = (WIN_W, WIN_H)
    screen = pygame.display.set_mode(bg_size)
    pygame.display.set_caption("新年快乐")
    pygame.mixer.music.load('D:\\CloudMusic\\小时姑娘 - 霞光-《精灵世纪》片尾曲.mp3')
    font_values = ['新年快乐']

    grand_has = set()
    clock = pygame.time.Clock()

    while True:
        if not pygame.mixer.music.get_busy():
            pygame.mixer.music.play()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()
        screen.fill((0, 0, 0))
        ... ...
        pygame.display.update()
        time_passed = clock.tick(50)

if __name__ == '__main__':
    main()

下雪的过程

现在,需要实现下雪的过程,首先,考虑定义定义一堆初始化的下雪点

def init_xue(bg_size):
    snow_list = []
    for i in range(200):
        x_site = random.randrange(0, bg_size[0])  # 雪花圆心位置
        y_site = random.randrange(0, bg_size[1])  # 雪花圆心位置
        X_shift = random.randint(-1, 1)  # x 轴偏移量
        radius = random.randint(4, 6)  # 半径和 y 周下降量
        xxxxx = random_color(150, 255)
        snow_list.append([x_site, y_site, X_shift, radius, 255, 255, 255])
    return snow_list

然后实现渲染雪的过程

def draw_xue(snow_list: [], screen, bg_size: [], grand_has: set, grand_list: []):
    # 雪花列表循环
    # todo 空中的雪
    for i in range(len(snow_list)):
        # 绘制雪花,颜色、位置、大小
        pygame.draw.circle(screen, (snow_list[i][4], snow_list[i][5], snow_list[i][6]), snow_list[i][:2],
                           snow_list[i][3] - 3)
        # 移动雪花位置(下一次循环起效)
        snow_list[i][0] += snow_list[i][2]
        snow_list[i][1] += snow_list[i][3]
        # 如果雪花落出屏幕,重设位置
        if snow_list[i][1] > bg_size[1]:
            # tmp = []
            snow_list[i][1] = random.randrange(-50, -10)
            snow_list[i][0] = random.randrange(0, bg_size[0])
            x = snow_list[i][0]
            y = bg_size[1]
            while (grand_has.__contains__(x * 10000 + y)):
                y = y - snow_list[i][3]
            grand_has.add(x * 10000 + y)
            grand_list.append(
                [x, y, snow_list[i][2], snow_list[i][3], snow_list[i][4], snow_list[i][5],
                 snow_list[i][6]])

集成到上面的架子中,效果如下:

不过目前的下雪没有质感,可以考虑在底部堆一些雪,只需要在雪落到地上做特判即可。

雪落到地上堆起来的过程

在前面的下雪过程的代码中,我们维护了一个Grand_list的数组,目的就是维护堆雪的效果

min_height = 100000
# todo 地上的积雪
for i in range(len(grand_list)):
    if grand_list[i][0] < 375:
        min_height = min(min_height, grand_list[i][1])

然后进入维护程序:

draw_xue(snow_list, screen, bg_size, grand_has, grand_list)

最后再将雪画出来

for i in range(len(grand_list)):
    pygame.draw.circle(screen, (grand_list[i][4], grand_list[i][5], grand_list[i][6]), grand_list[i][:2],
                       grand_list[i][3] - 3)

效果图如上。

实现烟花的过程

首先定义出烟花类:

class Fireworks():
    is_show = False
    x, y = 0, 0
    vy = 0
    p_list = []
    color = [0, 0, 0]
    v = 0

    def __init__(self, x, y, vy, n=300, color=[0, 255, 0], v=10):
        self.x = x
        self.y = y
        self.vy = vy
        self.color = color
        self.v = v
        for i in range(n):
            self.p_list.append([random.random() * 2 * math.pi, 0, v * math.pow(random.random(), 1 / 3)])

    def run(self):
        global show_n
        for p in self.p_list:
            p[1] = p[1] + (random.random() * 0.6 + 0.7) * p[2]
            p[2] = p[2] * 0.97
            if p[2] < 1.2:
                self.color[0] *= 0.9999
                self.color[1] *= 0.9999
                self.color[2] *= 0.9999
            if max(self.color) < 10 or self.y > WIN_H + p[1]:
                show_n -= 1
                self.is_show = False
                break
        self.vy += 10 * t1
        self.y += self.vy * t1

然后,我们需要画出烟花释放前上升的过程点,这部分与下雪的初始化差不多。

def init_yanhua(bg_size):
    yanhua_list = []
    for i in range(5):
        x_site = random.randrange(0, WIN_W)  # 雪花圆心位置
        y_site = WIN_H  # 雪花圆心位置
        X_shift = 0  # x 轴偏移量
        radius = random.randint(6, 10)  # 半径和 y 周上升降量
        xxxxx = random_color(150, 255)
        red = xxxxx[0]
        green = xxxxx[1]
        blue = xxxxx[2]
        yanhua_list.append([x_site, y_site, X_shift, radius, red, green, blue])
    return yanhua_list

然后是画上升过程

def draw_yanhua(yanhua_list: [], screen, bg_size: []):
    global fk_list
    for i in range(len(yanhua_list)):
        # 绘制雪花,颜色、位置、大小
        pygame.draw.circle(screen, (yanhua_list[i][4], yanhua_list[i][5], yanhua_list[i][6]), yanhua_list[i][:2],
                           yanhua_list[i][3] - 3)
        
        yanhua_list[i][0] += yanhua_list[i][2]
        yanhua_list[i][1] -= yanhua_list[i][3]

        if yanhua_list[i][1] <= 0:
            # tmp = []
            yanhua_list[i][1] = WIN_H
            yanhua_list[i][0] = random.randrange(0, bg_size[0])
        if yanhua_list[i][1] <= random.randint(200, 400):
            # todo 放烟花
            fk = Fireworks(yanhua_list[i][0], yanhua_list[i][1], -20, n=300, color=red_random(1, 150), v=10)
            fk_list.append(fk)
            yanhua_list[i][1] = WIN_H
            yanhua_list[i][0] = random.randrange(0, bg_size[0])

效果图如下:

圈出来的就是上升过程的烟花。

最后就是绽放部分,其实在上升过程的代码中有维护,如果超过某个随机高度,就会生成一个烟花,只是没有渲染,现在我们把渲染加上。

        for fk in fk_list:
            fk.run()
            for p in fk.p_list:
                x, y = fk.x + p[1] * math.cos(p[0]), fk.y + p[1] * math.sin(p[0])
                if random.random() < 0.055:
                    screen.set_at((int(x), int(y)), (255, 255, 255))
                else:
                    screen.set_at((int(x), int(y)), (int(fk.color[0]), int(fk.color[1]), int(fk.color[2])))
        tmp = []
        for fk in fk_list:
            for p in fk.p_list:
                x, y = fk.x + p[1] * math.cos(p[0]), fk.y + p[1] * math.sin(p[0])
                if y < WIN_H - 1000:
                    tmp.append(fk)
                    break
        fk_list = tmp

最终的运行效果就如最顶上的效果一样。

完整代码

将上述过程进行组合,结果如下,感兴趣的朋友可以按自己的需求进行优化。

import pygame
import random
import math

pygame.init()
pygame.mixer.init()
pygame.font.init()

WIN_W = 2200
WIN_H = 1300

t1 = 0.18  # 时间流速
show_n = 0
show_frequency = 0.0015  # 烟花绽放频率,数值越大频率越高

color_list = [
    [255, 0, 0]
]

yanhua_map = {}
fk_list = []

class Fireworks():
    is_show = False
    x, y = 0, 0
    vy = 0
    p_list = []
    color = [0, 0, 0]
    v = 0

    def __init__(self, x, y, vy, n=300, color=[0, 255, 0], v=10):
        self.x = x
        self.y = y
        self.vy = vy
        self.color = color
        self.v = v
        for i in range(n):
            self.p_list.append([random.random() * 2 * math.pi, 0, v * math.pow(random.random(), 1 / 3)])

    def run(self):
        global show_n
        for p in self.p_list:
            p[1] = p[1] + (random.random() * 0.6 + 0.7) * p[2]
            p[2] = p[2] * 0.97
            if p[2] < 1.2:
                self.color[0] *= 0.9999
                self.color[1] *= 0.9999
                self.color[2] *= 0.9999
            if max(self.color) < 10 or self.y > WIN_H + p[1]:
                show_n -= 1
                self.is_show = False
                break
        self.vy += 10 * t1
        self.y += self.vy * t1

def random_color(l, r):
    return [random.randint(l, r), random.randint(l, r), random.randint(l, r)]

def red_random(l, r):
    return [255, random.randint(l, r), random.randint(l, r)]

def init_yanhua(bg_size):
    yanhua_list = []
    for i in range(5):
        x_site = random.randrange(0, WIN_W)  # 雪花圆心位置
        y_site = WIN_H  # 雪花圆心位置
        X_shift = 0  # x 轴偏移量
        radius = random.randint(6, 10)  # 半径和 y 周上升降量
        xxxxx = random_color(150, 255)
        red = xxxxx[0]
        green = xxxxx[1]
        blue = xxxxx[2]
        yanhua_list.append([x_site, y_site, X_shift, radius, red, green, blue])
    return yanhua_list

def init_xue(bg_size):
    snow_list = []
    for i in range(200):
        x_site = random.randrange(0, bg_size[0])  # 雪花圆心位置
        y_site = random.randrange(0, bg_size[1])  # 雪花圆心位置
        X_shift = random.randint(-1, 1)  # x 轴偏移量
        radius = random.randint(4, 6)  # 半径和 y 周下降量
        xxxxx = random_color(150, 255)
        # red = xxxxx[0]
        # green = xxxxx[1]
        # blue = xxxxx[2]
        snow_list.append([x_site, y_site, X_shift, radius, 255, 255, 255])
    return snow_list

def draw_xue(snow_list: [], screen, bg_size: [], grand_has: set, grand_list: []):
    # 雪花列表循环
    # todo 空中的雪
    for i in range(len(snow_list)):
        # 绘制雪花,颜色、位置、大小
        pygame.draw.circle(screen, (snow_list[i][4], snow_list[i][5], snow_list[i][6]), snow_list[i][:2],
                           snow_list[i][3] - 3)
        # 移动雪花位置(下一次循环起效)
        snow_list[i][0] += snow_list[i][2]
        snow_list[i][1] += snow_list[i][3]
        # 如果雪花落出屏幕,重设位置
        if snow_list[i][1] > bg_size[1]:
            # tmp = []
            snow_list[i][1] = random.randrange(-50, -10)
            snow_list[i][0] = random.randrange(0, bg_size[0])
            x = snow_list[i][0]
            y = bg_size[1]
            while (grand_has.__contains__(x * 10000 + y)):
                y = y - snow_list[i][3]
            grand_has.add(x * 10000 + y)
            grand_list.append(
                [x, y, snow_list[i][2], snow_list[i][3], snow_list[i][4], snow_list[i][5],
                 snow_list[i][6]])

def draw_yanhua(yanhua_list: [], screen, bg_size: []):
    global fk_list
    for i in range(len(yanhua_list)):
        # 绘制雪花,颜色、位置、大小
        pygame.draw.circle(screen, (yanhua_list[i][4], yanhua_list[i][5], yanhua_list[i][6]), yanhua_list[i][:2],
                           yanhua_list[i][3] - 3)
        # 移动雪花位置(下一次循环起效)
        yanhua_list[i][0] += yanhua_list[i][2]
        yanhua_list[i][1] -= yanhua_list[i][3]
        # 如果雪花落出屏幕,重设位置
        if yanhua_list[i][1] <= 0:
            # tmp = []
            yanhua_list[i][1] = WIN_H
            yanhua_list[i][0] = random.randrange(0, bg_size[0])
        if yanhua_list[i][1] <= random.randint(200, 400):
            # todo 放烟花
            fk = Fireworks(yanhua_list[i][0], yanhua_list[i][1], -20, n=300, color=red_random(1, 150), v=10)
            fk_list.append(fk)
            yanhua_list[i][1] = WIN_H
            yanhua_list[i][0] = random.randrange(0, bg_size[0])

def show_shi(a: list, n, screen):
    i = 2 * n - 1
    j = 2 * n
    if i >= len(a):
        i = len(a) - 2
        j = len(a) - 1
    if i >= 0:
        myfont = pygame.font.SysFont('simHei', 30)
        textsurface = myfont.render(a[i], False, random_color(150, 255))
        screen.blit(textsurface, (WIN_W / 2, 30))
    if j >= 0:
        myfont = pygame.font.SysFont('simHei', 100)
        textsurface = myfont.render(a[j], False, red_random(1, 1))
        screen.blit(textsurface, (WIN_W / 2 - 200, 50))

def main():
    global show_n
    global fk_list
    bg_size = (WIN_W, WIN_H)
    screen = pygame.display.set_mode(bg_size)
    # bg_img = "./1.png"
    pygame.display.set_caption("新年快乐")
    # bg = pygame.image.load(bg_img)
    pygame.mixer.music.load('D:\\CloudMusic\\小时姑娘 - 霞光-《精灵世纪》片尾曲.mp3')
    grand_list = []
    font_values = ['新年快乐']

    grand_has = set()

    clock = pygame.time.Clock()
    yanhua_list = init_yanhua(bg_size)
    snow_list = init_xue(bg_size)
    # 游戏主循环
    while True:
        if not pygame.mixer.music.get_busy():
            pygame.mixer.music.play()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()
        screen.fill((0, 0, 0))
        draw_yanhua(yanhua_list, screen, bg_size)
        if len(fk_list) != 0:
            print(len(fk_list))
        # # 放烟花
        show_shi(font_values, 0, screen)
        for fk in fk_list:
            fk.run()
            for p in fk.p_list:
                x, y = fk.x + p[1] * math.cos(p[0]), fk.y + p[1] * math.sin(p[0])
                if random.random() < 0.055:
                    screen.set_at((int(x), int(y)), (255, 255, 255))
                else:
                    screen.set_at((int(x), int(y)), (int(fk.color[0]), int(fk.color[1]), int(fk.color[2])))
        tmp = []
        for fk in fk_list:
            for p in fk.p_list:
                x, y = fk.x + p[1] * math.cos(p[0]), fk.y + p[1] * math.sin(p[0])
                if y < WIN_H - 1000:
                    tmp.append(fk)
                    break
        fk_list = tmp
        min_height = 100000
        # todo 地上的积雪
        for i in range(len(grand_list)):
            if grand_list[i][0] < 375:
                min_height = min(min_height, grand_list[i][1])

        draw_xue(snow_list, screen, bg_size, grand_has, grand_list)
        for i in range(len(grand_list)):
            pygame.draw.circle(screen, (grand_list[i][4], grand_list[i][5], grand_list[i][6]), grand_list[i][:2],
                               grand_list[i][3] - 3)
        pygame.display.update()
        time_passed = clock.tick(50)

if __name__ == '__main__':
    main()

以上就是Python Pygame制作雪夜烟花景的详细内容,更多关于Python Pygame的资料请关注我们其它相关文章!

(0)

相关推荐

  • python绘制雪景图

    本文实例为大家分享了python绘制雪景图的具体代码,供大家参考,具体内容如下 绘制雪景图,应用到turtle和random. from turtle import * from random import * # 绘制随机雪花 def DrawSnow(snow): x = randrange(-750, 750) y = randrange(-50, 400) snowcolor = (randrange(0, 255), randrange(0, 255), randrange(0, 25

  • 利用Python绘制虎年烟花秀

    目录 一.演示效果 二.python代码 三.前端代码 一.演示效果 b站:虎年烟花演示 二.python代码 import pygame from math import * from pygame.locals import * import random class firew:          def __init__(self, pos, color, light, size, move):         self.pos = list(pos)         self.colo

  • 利用Python写一场新年烟花秀

    目录 1.导库 2.烟花颜色 3.定义烟花类 4.燃放烟花 5.启动 我们用到的 Python 模块包括:tkinter.PIL.time.random.math,如果第三方模块没有装的话,pip install 一下即可,下面看一下代码实现. 1.导库 import tkinter as tk from PIL import Image, ImageTk from time import time, sleep from random import choice, uniform, randi

  • python代码实现烟花实例

    实现代码如下: # -*- coding: utf-8 -*- import math, random,time import threading import tkinter as tk import re #import uuid Fireworks=[] maxFireworks=8 height,width=600,600 class firework(object): def __init__(self,color,speed,width,height): #uid=uuid.uuid

  • 基于python绘制科赫雪花

    什么是科赫曲线 科赫曲线是de Rham曲线的特例.给定线段AB,科赫曲线可以由以下步骤生成: 将线段分成三等份(AC,CD,DB) 以CD为底,向外(内外随意)画一个等边三角形DMC 将线段CD移去 分别对AC,CM,MD,DB重复1~3. 什么是科赫雪花 三段科赫曲线组成的图形 实现的效果 < #KocheDraw1 import turtle def koch(size,n): if n==1: turtle.fd(size) else: for i in [0,60,-120,60]:

  • Python新年炫酷烟花秀代码

    先介绍下 Pygame 绘制烟花的基本原理,烟花从发射到绽放一共分为三个阶段: 1,发射阶段:在这一阶段烟花的形状是线性向上,通过设定一组大小不同.颜色不同的点来模拟“向上发射” 的运动运动,运动过程中 5个点被赋予不同大小的加速度,随着时间推移,后面的点会赶上前面的点,最终所有点会汇聚在一起,处于 绽放准备阶段: 2,烟花绽放:烟花绽放这个阶段,是由一个点分散多个点向不同方向发散,并且每个点的移动轨迹可需要被记录,目的是为了追踪整个绽放轨迹. 3,烟花凋零,此阶段负责描绘绽放后烟花的效果,绽放

  • 基于Python实现人像雪景小程序

    目录 导语 ​正文 1)素材环境(仅部分) 2)运行环境 3)代码演示 4)效果展示 导语 哈喽~大家早上好鸭! 冷空气来袭,不少地方一夜入冬,南方地区除了冷就是雨,而北方除了冷还有雪. 就说下雪这件事吧,其实南北都特别期待.诗意的白色世界.戏剧般的氛围,容易让人情不自禁地 沉溺其中. 继上一期的[故宫,下雪了]一夜醒来,故宫完成秋冬交接,来自北方的故事纷纷踏雪而来后,小伙伴们都墙裂要求雪景少不了,还需要人物自拍美美的照片! 所以今天我们就来啦,码住这份攻略,雪景最美~​ ​(其实吧:我们这边城

  • Python Pygame制作雪夜烟花景

    目录 运行截图 实现过程 核心代码 基础架子 下雪的过程 雪落到地上堆起来的过程 实现烟花的过程 完整代码 运行截图 运行效果: 什么?你说你看不清烟花?那我换一种颜色,请点开看. 实现过程 准备工作 使用语言和框架:python.pygame. 安装pygame: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn pygame 你需要知道的基础知识

  • 新年到教你如何用Python实现雪夜烟花景

    运行截图 运行效果: 什么?你说你看不清烟花?那我换一种颜色,请点开看. 实现过程 准备工作 使用语言和框架:python.pygame.安装pygame: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn pygame 你需要知道的基础知识 首先,pygame渲染是同步的,所以同屏渲染的点过多之后,就会造成卡顿的情况.其次,pygame的代码逻辑是,

  • 利用Python Pygame放个烟花

    uu们,有多久没放烟花了?今年你所在的地方允许放烟花么?既然我们不能线下放,那么我们就在线上放个够吧,先上最后效果图 老规矩,先导包,导入pygame,Python Pygame 是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows.Linux.Mac OS 等操作系统,具有良好的跨平台性. import pygame from random import randint, uniform, choice import math Pygame 绘制烟花的基本原理 1.发射阶段

  • Python+Pygame制作简易版2048小游戏

    目录 导语 正文 主要代码 效果图 导语 哈喽!大家好,我是栗子,感谢大家的支持! 新的一天,新气象,程序猿们的日常开始敲敲敲,改改改——今天给大家来一款简单的小游戏! 2048小游戏——准确的来说确实是一个简单版本的! 呐呐呐 ,主要是担心很多小伙伴儿直接上界面版本的看不懂,所以做了这款简单的2048,先看这篇简单版本的吧! 正文 为了搞懂这个游戏的规则,小编去直接下载了一款2048的小游戏,上手玩了一波! 然后.........完全停不下来!23333~ 玩法: 用手指或键盘上下左右滑动,将

  • Python+Pygame制作"长沙版"大富翁

    目录 导语 一.大富翁之旅 二.特殊事件 1)触发的特殊事件如下 2)游戏规则 三.代码演示 1)环境素材 2)运行环境 3)主程序 4)玩家角色 四.效果展示 1)初始界面 2)选择游戏人数界面 3)后续 导语 ​说到童年爱玩的电脑游戏,你会想到什么? 最国民的莫过于金山打字通,接着是扫雷.红心大战,而红极一时的单机游戏当属<大富翁>. 嘻嘻 打字游戏——扫雷这是之前都已经给大家写过的游戏啦~SO 剩下<大富翁>游戏. 今天来给大家大显身手一波—— 作为一款经典的强手棋类游戏,“

  • 使用python和pygame制作挡板弹球游戏

    python是个很有趣的语言,可以在cmd命令窗口运行,还有很多的功能强大的模块. 学了一天pygame,用python和pygame写一个简单的挡板弹球游戏. 2018年6月21日 00:15:21 GitHub: EasyBaffleBallGame # -*- coding:utf-8 -*- from sys import exit import pygame from pygame.locals import * pygame.init() # 创建窗口 ScreenWidth = 5

  • Python pygame绘制文字制作滚动文字过程解析

    这篇文章主要介绍了Python pygame绘制文字制作滚动文字过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个步骤: 初始化字体模块 pygame.init() 创建一个字体对象 可以从文件或者系统内字体选取 pygame.font.SysFont('幼圆',50) 绘制文本对象. a.render("测试字体",True,(

  • Python Pygame实现可控制的烟花游戏

    目录 实现效果描述 效果 代码地址 解析 main.py core.py fireworks.py 写在最后 自控烟花升空 实现效果描述效果代码地址解析main.pycore.pyfireworks.py 写在最后 实现效果描述 这大过年的不弄点有意思的怎么行呢?可以考虑用编程实现一个烟花升空-爆炸-绚丽地效果.随机的烟花也玩习惯了,这次我们用pygame实现用户鼠标点击屏幕实现放烟花并在指定高度绽放~ 效果 鼠标点击时,烟花点会从屏幕底部正中心发射至鼠标点击点处并绽放出随机的颜色,烟花颗粒符合

  • 利用Python如何制作贪吃蛇及AI版贪吃蛇详解

    用python制作普通贪吃蛇 哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 贪吃蛇,应该是90后小时候的记忆(连我这个00后也不例外),今天,我们就用python这款编程语言来实现贪吃蛇 系统:所有都可以 需导入模块: random pygame pygame.locals sys 下载以上模块指令: random和sys是Python自带的,我们只需要下载pygame即可 下载pygame: 在开始菜单输入"cmd"回车打开,输入``指令:pip install pyga

  • python pygame 愤怒的小鸟游戏示例代码

    小鸟(image) 游戏展示 代码展示 import pygame,sys pygame.init()#初始化操作 #保存窗口大小 width,height=600,400 screen=pygame.display.set_mode([width,height])#创建游戏窗口 #设置窗口标题 pygame.display.set_caption("愤怒的小鸟") #加载小鸟素材 player=pygame.image.load("xiaoniao.png") #

随机推荐