【Pygame實戰】開心——消消樂,你樂,我樂,大家樂~

專注的阿熊發表於2021-11-25

'''

Function:

     消消樂小遊戲

原始碼基地: #959755565#

'''

import os

import sys

import cfg

import pygame

from modules import *

''' 遊戲主程式 '''

def main():

     pygame.init()

     screen = pygame.display.set_mode(cfg.SCREENSIZE)

     pygame.display.set_caption(' 開心消消樂��� ')

     # 載入背景音樂

     pygame.mixer.init()

     pygame.mixer.music.load(os.path.join(cfg.ROOTDIR, "resources/audios/bg.mp3"))

     pygame.mixer.music.set_volume(0.6)

     pygame.mixer.music.play(-1)

     # 載入音效

     sounds = {}

     sounds['mismatch'] = pygame.mixer.Sound(os.path.join(cfg.ROOTDIR, 'resources/audios/badswap.wav'))

     sounds['match'] = []

     for i in range(6):

         sounds['match'].append(pygame.mixer.Sound(os.path.join(cfg.ROOTDIR, 'resources/audios/match%s.wav' % i)))

     # 載入字型

     font = 外匯跟單gendan5.compygame.font.Font(os.path.join(cfg.ROOTDIR, 'resources/font/font.TTF'), 25)

     # 圖片載入

     gem_imgs = []

     for i in range(1, 8):

         gem_imgs.append(os.path.join(cfg.ROOTDIR, 'resources/images/gem%s.png' % i))

     # 主迴圈

     game = gemGame(screen, sounds, font, gem_imgs, cfg)

     while True:

         score = game.start()

         flag = False

         # 一輪遊戲結束後玩家選擇重玩或者退出

         while True:

             for event in pygame.event.get():

                 if event.type == pygame.QUIT or (event.type == pygame.KEYUP and event.key == pygame.K_ESCAPE):

                     pygame.quit()

                     sys.exit()

                 elif event.type == pygame.KEYUP and event.key == pygame.K_r:

                     flag = True

             if flag:

                 break

             screen.fill((135, 206, 235))

             text0 = 'Final score: %s' % score

             text1 = 'Press <R> to restart the game.'

             text2 = 'Press <Esc> to quit the game.'

             y = 150

             for idx, text in enumerate([text0, text1, text2]):

                 text_render = font.render(text, 1, (85, 65, 0))

                 rect = text_render.get_rect()

                 if idx == 0:

                     rect.left, rect.top = (212, y)

                 elif idx == 1:

                     rect.left, rect.top = (122.5, y)

                 else:

                     rect.left, rect.top = (126.5, y)

                 y += 100

                 screen.blit(text_render, rect)

             pygame.display.update()

         game.reset()

'''run'''

if __name__ == '__main__':

     main()


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2844176/,如需轉載,請註明出處,否則將追究法律責任。

相關文章