序言
最快的成功方法就是, 保持對一件事情專注, 不停地重復(fù), 不停地深鉆, 只要看透時間的復(fù)利效應(yīng), 每一個人都可以是一個小領(lǐng)域的佼佼者, 怕的就是你在各個領(lǐng)域之間徘徊游蕩。” 想成功,就要舍去某些東西,
開始之前,捋一下思路:
1、需要一個方形界面,這里選用pygame模塊,搭建游戲窗口
2、窗口需要設(shè)置一張背景圖片作為展示,可以添加個BGM音樂。
3、可以設(shè)置一個灰色的背景圖層把圖片覆蓋起來,起到一個可以刮的效果。

image.png
準備素材:
1、安裝模塊;指令:pip install pygame
2、一首mp3歌曲
3、1張或者多張圖片
第一步:搭建游戲窗口
import sys
import pygame
# 初始化 預(yù)加載
pygame.init()
# 窗口的大小
pygame.display.set_mode((800,500))
while True:
# 獲得 當(dāng)前的事件 列表
events = pygame.event.get()
#
for events in events:
if events.type == pygame.QUIT:
# 退出當(dāng)前的窗口界面
pygame.quit()
sys.exit()
pygame.display.update()

image.png
第二步:設(shè)置游戲背景音樂
# 加載音樂
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
第四步:添加背景圖層
從上往下堆代碼的話,總感覺不太好 ,接下來我會把前面的代碼重新 通過函數(shù)封裝一下。作為一名程序員代碼逼格得上去不是。
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老師-定制-紙質(zhì)版-刮刮卡游戲')
surface = pygame.Surface(SCREENSIZE).convert_alpha()
surface.fill(GRAY)
image_used = readImage()
while True:
# 這里要 添加獲得 當(dāng)前的事件 列表
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()
這里的圖片我設(shè)置了8張,可隨機更換。

image.png
第五步:效果展示

image.png

image.png