Python黑科技系列06 - 项目实战-刮刮卡小游戏

简介: 最快的成功方法就是,保持对一件事情专注,不停地重复,不停地深钻,只要看透时间的复利效应,每一个人都可以是一个小领域的佼佼者,怕的就是你在各个领域之间徘徊游荡。”想成功,就要舍去某些东西,

开始之前,捋一下思路:

1、需要一个方形界面,这里选用pygame模块,搭建游戏窗口

2、窗口需要设置一张背景图片作为展示,可以添加个BGM音乐。

3、可以设置一个灰色的背景图层把图片覆盖起来,起到一个可以刮的效果。

image.png

准备素材:

1、安装模块;指令:pip install pygame
2、一首mp3歌曲
3、1张或者多张图片

第一步:搭建游戏窗口

import sys
import pygame

# 初始化 预加载
pygame.init()
# 窗口的大小
pygame.display.set_mode((800,500))

while True:
    # 获得 当前的事件  列表
    events = pygame.event.get()
    #
    for events in events:
       if events.type == pygame.QUIT:
           # 退出当前的窗口界面
           pygame.quit()
           sys.exit()
    pygame.display.update()

image.png

第二步:设置游戏背景音乐

#  加载音乐
pygame.mixer.music.load(r'500miles.mp3')
# 播放音乐
pygame.mixer.music.play()

image.png

第三步:随机窗口背景图片展示

file_name = os.listdir('pic')

print(file_name)
print(random.choice(file_name)) 
# 拼接
image_path = os.path.join('pic',random.choice(file_name))
image_used = pygame.transform.scale(pygame.image.load(image_path), (800,500))

image_used = screen.blit(image_used, (0, 0))

image.png

image.png

第四步:添加背景图层

从上往下堆代码的话,总感觉不太好 ,接下来我会把前面的代码重新 通过函数封装一下。作为一名程序员代码逼格得上去不是。

import os
import sys
import random
import pygame


# 定义常量
BGMPATH = 'music/500miles.mp3'
IMAGEDIR = 'pictures'
SUPPORTEXTS = ['jpg', 'png']
SCREENSIZE = (800, 600)
WHITE = (255, 255, 255, 27)
GRAY = (192, 192, 192)

# 随机读取一张图片
def readImage():
    file_names = os.listdir(IMAGEDIR)
    file_names = [f for f in file_names if f.split('.')[-1] in SUPPORTEXTS]
    img_path = os.path.join(IMAGEDIR, random.choice(file_names))
    return pygame.transform.scale(pygame.image.load(img_path), SCREENSIZE)


def main():
    pygame.init()
    pygame.mixer.init()
    pygame.mixer.music.load(BGMPATH)
    pygame.mixer.music.play(-1, 0.0)
    pygame.mouse.set_cursor(*pygame.cursors.diamond)
    screen = pygame.display.set_mode(SCREENSIZE)
    pygame.display.set_caption('普门教育Tony老师-定制-纸质版-刮刮卡游戏')
    surface = pygame.Surface(SCREENSIZE).convert_alpha()
    surface.fill(GRAY)
    image_used = readImage()
    while True:
        #  这里要 添加获得 当前的事件  列表
        mouse_event_flags = pygame.mouse.get_pressed()
        if mouse_event_flags[0]:
            pygame.draw.circle(surface, WHITE, pygame.mouse.get_pos(), 40)
        elif mouse_event_flags[-1]:
            surface.fill(GRAY)
            image_used = readImage()
        screen.blit(image_used, (0, 0))
        screen.blit(surface, (0, 0))
        pygame.display.update()


if __name__ == '__main__':
    main()

这里的图片我设置了8张,可随机更换。
image.png

第五步:效果展示

image.png

image.png

在这个浮躁的时代;竟然还有人能坚持篇篇原创;

如果本文对你学习有所帮助-可以点赞👍+ 关注!将持续更新更多新的文章。

支持原创。感谢!

相关文章
|
1月前
|
人工智能 机器人 测试技术
【python】python小游戏——开心消消乐(源码)【独一无二】
【python】python小游戏——开心消消乐(源码)【独一无二】
|
2月前
|
Python
python小游戏7
python小游戏7
|
2月前
|
Python
python小游戏6
python小游戏6
|
2月前
|
Python
python小游戏5
python小游戏5
|
2月前
|
Python
python小游戏4
python小游戏4
|
2月前
|
Python
python小游戏1
python小游戏1
|
2月前
|
安全 C++ Python
小游戏实战-Python实现石头剪刀布+扫雷小游戏
小游戏实战-Python实现石头剪刀布+扫雷小游戏
38 0
|
2月前
|
Python
python小游戏3
python小游戏3
|
1月前
|
数据采集 机器学习/深度学习 数据可视化
数据科学项目实战:完整的Python数据分析流程案例解析
【4月更文挑战第12天】本文以Python为例,展示了数据分析的完整流程:从CSV文件加载数据,执行预处理(处理缺失值和异常值),进行数据探索(可视化和统计分析),选择并训练线性回归模型,评估模型性能,以及结果解释与可视化。每个步骤都包含相关代码示例,强调了数据科学项目中理论与实践的结合。
|
2月前
|
Python
python小游戏
python小游戏