飛機大戰製作筆記4

1.顯示分數(顯示特殊文字方法)
Font方法:(用於載入字體,一般寫在遊戲主循環外)
score_font = pygame.font.Font("font/font.ttf", 36) ##括號的第一個參數是字體的路徑(ttf格式),第二的參數是字體的大小

render方法:(把字體(text)變成surface對象,一般寫在有序主循環內)
score_text = score_font.render("Score : %s" % str(score), True,WHITE)  ##第一個參數是text(以字符串的形式),第二個參數是"是否消除鋸齒",第三個參數是字體顏色


2.暫停按鈕

#遊戲暫停按鈕
paused = False
paused_nor_image = pygame.image.load("Images/shoot/game_pause_nor.png").convert_alpha() #載入淺色暫停按鈕
paused_pressed_image = pygame.image.load("Images/shoot/game_pause_pressed.png").convert_alpha()	#載入深色暫停按鈕
resume_nor_image = pygame.image.load("Images/shoot/game_resume_nor.png").convert_alpha() #載入淺色開始按鈕
resume_pressed_image = pygame.image.load("Images/shoot/game_resume_pressed.png").convert_alpha() #載入深色開始按鈕
paused_rect = paused_nor_image.get_rect() #獲取圖片矩形位置
paused_rect.left, paused_rect.top = width - paused_rect.width - 10, 10
paused_image = paused_nor_image #pause按鈕的默認初始狀態
	
	
...while中...
    for event in pygame.event.get():
			
        ...
			
        elif event.type == MOUSEBUTTONDOWN:
             if event.button == 1 and paused_rect.collidepoint(event.pos):
                 paused = not paused

        elif event.type == MOUSEMOTION:
            if paused_rect.collidepoint(event.pos): #判斷鼠標的位置是否在paused_rect這個位置上,如果是就顯示“深 色”圖標
                if paused:
                    paused_image = resume_pressed_image #如果在暫停的情況下,圖片變成“深 色 繼 續”圖片
                else:
                    paused_image = paused_pressed_image #如果在繼續的情況下,圖片變成“深 色 暫 停”圖片
            else: #如果鼠標沒在paused_rect上方的話,就顯示 “淺 色” 圖標
                if paused:
                    paused_image = resume_nor_image
                else:
                    paused_image = paused_nor_image						
		...
	
     #繪製暫停按鈕
     screen.blit(paused_image, paused_rect)


3.難度的設置
在遊戲主循環中,通過對玩家得分進行簡單的if...else...判斷即可實現

4.全屏炸彈

炸彈圖片載入

爆炸效果:清除正在屏幕中的飛機



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章