Compare commits
5 Commits
Author | SHA1 | Date |
---|---|---|
唐志超 | d256268ebd | 6 months ago |
唐志超 | 6a90e3f2d8 | 6 months ago |
唐志超 | 03857c12df | 6 months ago |
p3zqi2com | 6e8d762938 | 6 months ago |
唐志超 | ca567ca2a6 | 6 months ago |
@ -0,0 +1,12 @@
|
||||
import os
|
||||
|
||||
|
||||
'''定义一些超参'''
|
||||
WIDTH = 600
|
||||
HEIGHT = 600
|
||||
NUMGRID = 8
|
||||
GRIDSIZE = 64
|
||||
XMARGIN = (WIDTH - GRIDSIZE * NUMGRID) // 2
|
||||
YMARGIN = (HEIGHT - GRIDSIZE * NUMGRID) // 2
|
||||
ROOTDIR = os.getcwd()
|
||||
FPS = 30
|
@ -0,0 +1,66 @@
|
||||
import os
|
||||
import pygame
|
||||
from utils import *
|
||||
from config import *
|
||||
|
||||
|
||||
'''游戏主程序'''
|
||||
def main():
|
||||
pygame.init()
|
||||
screen = pygame.display.set_mode((WIDTH, HEIGHT))
|
||||
pygame.display.set_caption('消消乐')
|
||||
# 加载背景音乐
|
||||
pygame.mixer.init()
|
||||
pygame.mixer.music.load(os.path.join(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(ROOTDIR, 'resources/audios/badswap.wav'))
|
||||
sounds['match'] = []
|
||||
for i in range(6):
|
||||
sounds['match'].append(pygame.mixer.Sound(os.path.join(ROOTDIR, 'resources/audios/match%s.wav' % i)))
|
||||
# 加载字体
|
||||
font = pygame.font.Font(os.path.join(ROOTDIR, 'resources/font.TTF'), 25)
|
||||
# 图片加载
|
||||
gem_imgs = []
|
||||
for i in range(1, 8):
|
||||
gem_imgs.append(os.path.join(ROOTDIR, 'resources/images/gem%s.png' % i))
|
||||
# 主循环
|
||||
game = gemGame(screen, sounds, font, gem_imgs)
|
||||
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()
|
||||
|
||||
|
||||
'''test'''
|
||||
if __name__ == '__main__':
|
||||
main()
|
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 26 KiB |