序言
最快的成功方法就是, 保持对一件事情专注, 不停地重复, 不停地深钻, 只要看透时间的复利效应, 每一个人都可以是一个小领域的佼佼者, 怕的就是你在各个领域之间徘徊游荡。” 想成功,就要舍去某些东西,
开始之前,捋一下思路:
1、需要一个方形界面,这里选用pygame模块,搭建游戏窗口
2、窗口需要设置一张背景图片作为展示,可以添加个BGM音乐。
3、可以设置一个灰色的背景图层把图片覆盖起来,起到一个可以刮的效果。
准备素材:
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()
第二步:设置游戏背景音乐
# 加载音乐
pygame.mixer.music.load(r'500miles.mp3')
# 播放音乐
pygame.mixer.music.play()
第三步:随机窗口背景图片展示
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))
第四步:添加背景图层
从上往下堆代码的话,总感觉不太好 ,接下来我会把前面的代码重新 通过函数封装一下。作为一名程序员代码逼格得上去不是。
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张,可随机更换。