# 生日禮物 ###### tags: `自己玩` 圖片可來[**我的雲端**](https://drive.google.com/drive/folders/1gAEiGbjCiC9qoNux9EkTGpFzPmtNot2p?usp=sharing)查看 ```python= import pygame import random import os import time from random import randint pygame.init()#遊戲初始化 pygame.mixer.init() WIDTH = 550 HIGHT = 600 font_name = pygame.font.match_font('DFKai-SB')#引入字體 arial不支援中文 screen = pygame.display.set_mode((WIDTH,HIGHT))#視窗大小 寬度500高度600 pygame.display.set_caption("世界上最怪的人")#更改視窗名字 clock = pygame.time.Clock()#可管理時間 backsound = pygame.mixer.Sound(os.path.join("楊舒雅","準備好了嗎.mp3")) 不完整2 = pygame.image.load(os.path.join("楊舒雅","不完整2.jpg")).convert() pygame.display.set_icon(不完整2)#更改視窗名字旁邊的圖案 封面照= pygame.image.load(os.path.join("楊舒雅","不完整1.jpg")).convert() 不完整2= pygame.image.load(os.path.join("楊舒雅","不完整2.jpg")).convert() 不完整3= pygame.image.load(os.path.join("楊舒雅","不完整3.jpg")).convert() 假文青1= pygame.image.load(os.path.join("楊舒雅","假文青1.jpg")).convert() 假文青2= pygame.image.load(os.path.join("楊舒雅","假文青2.jpg")).convert() 假文青3= pygame.image.load(os.path.join("楊舒雅","假文青3.jpg")).convert() 假文青4= pygame.image.load(os.path.join("楊舒雅","假文青4.jpg")).convert() 假文青5= pygame.image.load(os.path.join("楊舒雅","假文青5.jpg")).convert() hipster = [假文青1,假文青2,假文青3,假文青4,假文青5] 搞怪1= pygame.image.load(os.path.join("楊舒雅","搞怪1.jpg")).convert() 搞怪2= pygame.image.load(os.path.join("楊舒雅","搞怪2.jpg")).convert() 搞怪3= pygame.image.load(os.path.join("楊舒雅","搞怪3.jpg")).convert() 搞怪4= pygame.image.load(os.path.join("楊舒雅","搞怪4.jpg")).convert() 搞怪5= pygame.image.load(os.path.join("楊舒雅","搞怪5.jpg")).convert() 搞怪6= pygame.image.load(os.path.join("楊舒雅","搞怪6.jpg")).convert() 搞怪7= pygame.image.load(os.path.join("楊舒雅","搞怪7.jpg")).convert() 搞怪8= pygame.image.load(os.path.join("楊舒雅","搞怪8.jpg")).convert() 搞怪9= pygame.image.load(os.path.join("楊舒雅","搞怪9.jpg")).convert() funny = [搞怪2,搞怪3,搞怪4,搞怪5,搞怪6,搞怪9] 睡1= pygame.image.load(os.path.join("楊舒雅","睡1.jpg")).convert() 睡2= pygame.image.load(os.path.join("楊舒雅","睡2.jpg")).convert() 睡3= pygame.image.load(os.path.join("楊舒雅","睡3.jpg")).convert() 睡4= pygame.image.load(os.path.join("楊舒雅","睡4.jpg")).convert() 睡5= pygame.image.load(os.path.join("楊舒雅","睡5.jpg")).convert() sleep = [睡1,睡2,睡3,睡4,睡5] 我1= pygame.image.load(os.path.join("楊舒雅","我12.jpg")).convert() 我1 = pygame.transform.rotate(我1, 90) 我2= pygame.image.load(os.path.join("楊舒雅","我6.jpg")).convert() 我2 = pygame.transform.rotate(我2, -90) 我3= pygame.image.load(os.path.join("楊舒雅","我4.jpg")).convert() 我4= pygame.image.load(os.path.join("楊舒雅","我9.jpg")).convert() 我5= pygame.image.load(os.path.join("楊舒雅","我8.jpg")).convert() 我5 = pygame.transform.rotate(我5, -90) 我6= pygame.image.load(os.path.join("楊舒雅","我5.jpg")).convert() 我7= pygame.image.load(os.path.join("楊舒雅","我2.jpg")).convert() 我7 = pygame.transform.rotate(我7, -90) 我8= pygame.image.load(os.path.join("楊舒雅","我7.jpg")).convert() 我9= pygame.image.load(os.path.join("楊舒雅","我1.jpg")).convert() 我10= pygame.image.load(os.path.join("楊舒雅","我11.jpg")).convert() me = [我1,我2,我3,我4,我5,我6,我7,我8,我9,我10] 最喜歡的合照= pygame.image.load(os.path.join("楊舒雅","我10.png")).convert() ilove= pygame.image.load(os.path.join("楊舒雅","i.png")).convert() ilove = pygame.transform.scale(ilove, (550, 600)) love= pygame.image.load(os.path.join("楊舒雅","love.png")).convert() love = pygame.transform.scale(love, (550, 600)) you= pygame.image.load(os.path.join("楊舒雅","you.png")).convert() you = pygame.transform.scale(you, (550, 600)) 豬 = pygame.image.load(os.path.join("楊舒雅","豬.png")).convert() 小豬 = pygame.transform.scale(豬, (100, 100)) 小豬.set_colorkey((0,0,0)) 羊肉串 = pygame.image.load(os.path.join("楊舒雅","羊肉串.png")).convert() 羊肉串1 = pygame.transform.scale(羊肉串, (60, 60)) 羊肉串1.set_colorkey((0,0,0)) end = pygame.image.load(os.path.join("楊舒雅","結局.jpg")).convert() screen.blit(封面照,(-100,-300))#blit就是畫 (圖案,(位置)) def draw_text2(surf, text, size ,x,y):#畫東西的函示 (哪個平面, 內容,大小,x,y) font = pygame.font.Font(font_name, size) text_surface = font.render(text, True, (255,185,15)) text_rect = text_surface.get_rect() text_rect.centerx = x text_rect.top = y surf.blit(text_surface, text_rect) def draw_text1(surf, text, size ,x,y):#畫東西的函示 (哪個平面, 內容,大小,x,y) font = pygame.font.Font(font_name, size) text_surface = font.render(text, True, (255,252,205)) text_rect = text_surface.get_rect() text_rect.centerx = x text_rect.top = y surf.blit(text_surface, text_rect) def draw_text3(surf, text, size ,x,y):#畫東西的函示 (哪個平面, 內容,大小,x,y) font = pygame.font.Font(font_name, size) text_surface = font.render(text, True, (152,245,255)) text_rect = text_surface.get_rect() text_rect.centerx = x text_rect.top = y surf.blit(text_surface, text_rect) def draw_text4(surf, text, size ,x,y):#畫東西的函示 (哪個平面, 內容,大小,x,y) font = pygame.font.Font(font_name, size) text_surface = font.render(text, True, (192,255,62)) text_rect = text_surface.get_rect() text_rect.centerx = x text_rect.top = y surf.blit(text_surface, text_rect) def draw_text5(surf, text, size ,x,y):#畫東西的函示 (哪個平面, 內容,大小,x,y) font = pygame.font.Font(font_name, size) text_surface = font.render(text, True, (255,106,106)) text_rect = text_surface.get_rect() text_rect.centerx = x text_rect.top = y surf.blit(text_surface, text_rect) def draw_text6(surf, text, size ,x,y,z,a,b):#畫東西的函示 (哪個平面, 內容,大小,x,y) font = pygame.font.Font(font_name, size) text_surface = font.render(text, True, (z,a,b)) text_rect = text_surface.get_rect() text_rect.centerx = x text_rect.top = y surf.blit(text_surface, text_rect) def draw_flower(circenterweidth,circenterhight): pygame.draw.circle(screen,(255, 218, 185),(circenterweidth,circenterhight),7) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth-20,circenterhight),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth-20,circenterhight),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth-13,circenterhight-15),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth-13,circenterhight-15),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth-7,circenterhight-19),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth-7,circenterhight-19),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth,circenterhight-20),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth,circenterhight-20),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth,circenterhight-20),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth,circenterhight-20),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth+7,circenterhight-19),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth+7,circenterhight-19),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth+13,circenterhight-15),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth+13,circenterhight-15),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth+19,circenterhight-7),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth+19,circenterhight-7),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth+20,circenterhight),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth+20,circenterhight),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth-19,circenterhight-7),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth-19,circenterhight-7),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth+7,circenterhight+19),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth+7,circenterhight+19),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth+13,circenterhight+15),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth+13,circenterhight+15),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth+19,circenterhight+7),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth+19,circenterhight+7),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth-7,circenterhight+19),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth-7,circenterhight+19),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth-13,circenterhight+15),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth-13,circenterhight+15),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth-19,circenterhight+7),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth-19,circenterhight+7),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(250 ,235 ,215),(circenterweidth,circenterhight+20),4) pygame.draw.line(screen,(202 ,255, 112),(circenterweidth,circenterhight+20),(circenterweidth,circenterhight),2) pygame.draw.circle(screen,(255, 193, 37),(circenterweidth,circenterhight),7) def draw_init(): screen.blit(封面照,(-100,-300)) draw_text2(screen, "Happy Birthday",80,WIDTH/2,HIGHT/15) draw_text1(screen, "THE MOST",64,WIDTH/2,HIGHT/4) draw_text1(screen, "WEIRD GIRL",64,WIDTH/2,HIGHT/3+20) for p in range(0,WIDTH,50): for l in range(0,HIGHT,50): if l not in range(int(HIGHT/2)+25,int(HIGHT/2)+125) : draw_text3(screen, "~",25,p,l) draw_text4(screen, "~",25,p+10,l) draw_text5(screen, "~",25,p+20,l) if l in range(int(HIGHT/2)+25,int(HIGHT/2)+125) and p not in range(int(WIDTH/2)-200,int(WIDTH/2)+200): draw_text3(screen, "~",25,p,l) draw_text4(screen, "~",25,p+10,l) draw_text5(screen, "~",25,p+20,l) draw_text1(screen, "press '1' two time to see your's Sleeping Photos ",18,WIDTH/2,HIGHT/2+25) draw_text1(screen, "press '2' two time to see your's Funny Photos ",18,WIDTH/2-15,HIGHT/2+50) draw_text1(screen, "press '3' two time to see your's Hipster Photos ",18,WIDTH/2-6,HIGHT/2+75) draw_text1(screen, "press 'space' to see a big suprise ",18,WIDTH/2-60,HIGHT/2+100) draw_text1(screen, "press 'q' two time to quit this screen ",18,WIDTH/2-45,HIGHT/2+125) pygame.display.update() watting = True while watting: clock.tick(FPS)#1秒鐘之內最多只能執行 FPS 次 for event in pygame.event.get():#全部事件列出來 if event.type == pygame.QUIT:#如果按x讓視窗關閉 pygame.quit() return True elif event.type == pygame.KEYUP:#按下鍵盤建 (KEYUP 是按下再拿起案件才開始) watting = False return False show_init = True running = True FPS = 60 while running: if show_init: backsound.play(-1) close = draw_init() draw_init() show_init = False clock.tick(FPS)#1秒鐘之內最多只能執行 FPS 次 for event in pygame.event.get():#全部事件列出來 if event.type == pygame.QUIT:#如果按x讓視窗關閉 running = False elif event.type == pygame.KEYUP: if event.key == pygame.K_2: 搞怪1 = pygame.transform.scale(搞怪1, (550, 600)) 搞怪1 = pygame.transform.rotate(搞怪1, -90) screen.blit(搞怪1,(0,0)) pygame.display.update() 搞怪1 = pygame.transform.rotate(搞怪1, 90) for i in range(0,6,1): funny1 = pygame.transform.scale(funny[i], (550, 600)) screen.blit(funny1,(0,0)) time.sleep(1) pygame.display.update() screen.blit(love,(0,0)) pygame.display.update() time.sleep(2) draw_init() if event.key == pygame.K_1: for i in range(0,len(sleep),1): sleep1 = pygame.transform.scale(sleep[i], (550, 600)) screen.blit(sleep1,(0,0)) time.sleep(1) pygame.display.update() screen.blit(ilove,(0,0)) pygame.display.update() time.sleep(2) draw_init() if event.key == pygame.K_3: for i in range(0,len(hipster),1): hipster1 = pygame.transform.scale(hipster[i], (550, 600)) screen.blit(hipster1,(0,0)) time.sleep(1) pygame.display.update() screen.blit(you,(0,0)) pygame.display.update() time.sleep(2) draw_init() if event.key == pygame.K_SPACE: for i in range(0,len(me),1): me1 = pygame.transform.scale(me[i], (550, 600)) screen.blit(me1,(0,0)) pygame.display.update() time.sleep(1) draw_init() if event.key == pygame.K_q: 合照 = pygame.transform.scale(最喜歡的合照, (550, 600)) screen.blit(合照,(0,0)) pygame.display.update() time.sleep(2) draw_text6(screen,"嘿 又到了一年一度才有的時候了",30,WIDTH/2,160,240 ,255 ,255) pygame.display.update() time.sleep(1.3) draw_text6(screen,"汝又老了一歲 但因保養有功 ",30,WIDTH/2,190,240 ,255 ,255) pygame.display.update() time.sleep(1.3) draw_text6(screen,"似在汝的臉上找不出歲月的痕跡 ",30,WIDTH/2,220,240 ,255 ,255) pygame.display.update() time.sleep(1.3) draw_text6(screen,"當吾在家中看著汝的相片時 ",30,WIDTH/2,250,240 ,255 ,255) pygame.display.update() time.sleep(1.3) draw_text6(screen,"臉上總是掛著淺淺的微笑 ",30,WIDTH/2,280,240 ,255 ,255) pygame.display.update() time.sleep(1.3) draw_text6(screen,"不為別的 就是會想到你那勾錐一舉一動 ",30,WIDTH/2,310,240 ,255 ,255) pygame.display.update() time.sleep(1.3) draw_text6(screen,"雖然汝總是讓我不開勳 哈哈哈 ",30,WIDTH/2,340,240 ,255 ,255) pygame.display.update() time.sleep(1.3) draw_text6(screen,"願汝一生開勳且平安 呦 ",30,WIDTH/2,370,240 ,255 ,255) pygame.display.update() time.sleep(1.3) for i in range(1,120,4): draw_text6(screen,"撈夫 一ㄨ ",i,WIDTH/2,HIGHT/2-50,255 ,131 ,250) pygame.display.update() time.sleep(0.1) 合照 = pygame.transform.scale(最喜歡的合照, (550, 600)) screen.blit(合照,(0,0)) draw_text6(screen,"嘿 又到了一年一度才有的時候了",30,WIDTH/2,160,240 ,255 ,255) draw_text6(screen,"汝又老了一歲 但因保養有功 ",30,WIDTH/2,190,240 ,255 ,255) draw_text6(screen,"似在汝的臉上找不出歲月的痕跡 ",30,WIDTH/2,220,240 ,255 ,255) draw_text6(screen,"當吾在家中看著汝的相片時 ",30,WIDTH/2,250,240 ,255 ,255) draw_text6(screen,"臉上總是掛著淺淺的微笑 ",30,WIDTH/2,280,240 ,255 ,255) draw_text6(screen,"不為別的 就是會想到你那勾錐一舉一動 ",30,WIDTH/2,310,240 ,255 ,255) draw_text6(screen,"雖然汝總是讓我不開勳 哈哈哈 ",30,WIDTH/2,340,240 ,255 ,255) draw_text6(screen,"願汝一生開勳且平安 呦 ",30,WIDTH/2,370,240 ,255 ,255) draw_text6(screen,"撈夫 一ㄨ ",i,WIDTH/2,HIGHT/2-50,255 ,131 ,250) draw_flower(275,300) pygame.display.update() time.sleep(1.5) for i in range(1,5,1): flowerwidth = randint(0,550) flowerhight = randint(0,600) draw_flower(flowerwidth,flowerhight) pygame.display.update() time.sleep(1) for i in range(1,10,1): flowerwidth = randint(0,550) flowerhight = randint(0,600) draw_flower(flowerwidth,flowerhight) pygame.display.update() time.sleep(0.8) for j in range(1,7,1): for i in range(1,20,1): flowerwidth = randint(0,550) flowerhight = randint(0,600) draw_flower(flowerwidth,flowerhight) pygame.display.update() time.sleep(0.6) pygame.draw.rect(screen,(180 ,238, 180),(50,HIGHT/3-20,WIDTH-100,80),0) draw_text6(screen, "~ END ~" ,40 ,WIDTH/2,HIGHT/3,255 ,48 ,48) screen.blit(小豬,(WIDTH/2-200,HIGHT/3-25)) screen.blit(羊肉串1,(WIDTH/2+120,HIGHT/3-15)) pygame.display.update() time.sleep(2) running = False pygame.QUIT ```