導語
在CSDN學習的程序中,遇到了爆火的文章是關于刮刮卡的!
大家猜猜看是誰寫的?

我看這文章都特別火,我也感覺挺好玩的,那就尋思用 Python肯定也能做呀!
這不?今天還有時間,那就帶大家寫一款刮刮樂的小程式吧~
正文
1)環境安裝
準備好Python3、Pycharm、Pygame模塊還有一些自帶的,
模塊安裝:pip install pygame
圖片素材音樂背景可自選,【僅展示部分素材】


2)正式敲代碼
2.1定義必要常量
BGMPATH = 'music/bgm.mp3'
IMAGEDIR = 'pictures'
SUPPORTEXTS = ['jpg', 'png', 'bmp']
SCREENSIZE = (800, 600)
WHITE = (255, 255, 255, 27)
GRAY = (192, 192, 192)
2.2設定隨機讀取圖片
設定隨機讀取,更有趣味性,每張圖片都特別好看哦~
def readImageRandomly():
filenames = os.listdir(IMAGEDIR)
filenames = [f for f in filenames if f.split('.')[-1] in SUPPORTEXTS]
imgpath = os.path.join(IMAGEDIR, random.choice(filenames))
return pygame.transform.scale(pygame.image.load(imgpath), SCREENSIZE)
2.3主程式
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('小程式——唯美古風')
surface = pygame.Surface(SCREENSIZE).convert_alpha()
surface.fill(GRAY)
image_used = readImageRandomly()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit(-1)
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 = readImageRandomly()
screen.blit(image_used, (0, 0))
screen.blit(surface, (0, 0))
pygame.display.update()
3)效果圖展示
3.1 part 隨機圖一

3.2 part 隨機圖二

3.3 part 隨機圖三

總結
好啦!一款簡單的刮刮卡小程式就寫完了,想自己試試嘛?
好啦!本次文章就到這里了~如有想跟著小編一起學習交流的,歡迎大家!記得三連哦

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/345854.html
標籤:其他
上一篇:<2021SC@SDUSC> 開源游戲引擎 Overload 代碼模塊分析 之 OvTools(五)—— Utils(中)
