使用Pygame制作中秋嫦娥奔月小游戲
前言
中秋節(jié)是中國傳統(tǒng)的重要節(jié)日之一,起源于嫦娥奔月的神話故事。一個名叫逢蒙的人發(fā)現(xiàn)了這個秘密,他企圖威脅嫦娥交出藥丸。在緊急情況下,嫦娥為了保護后羿,不得不吞下了那包藥。結果,她立即感覺身體飄離了地面,沖出窗口,向天上飛去。由于她牽掛著丈夫,她飛到了離人間最近的月亮上,成為了仙女。
在中秋節(jié)這個特殊的日子里,人們不僅會欣賞明亮的月亮和嫦娥奔月的美麗故事,還會舉行一些慶?;顒?。接下來,我們使用Pygame制作“嫦娥奔月”小游戲。

準備工作
- pygame
- sys
Pygame是一個用于開發(fā)2D游戲的Python庫,它提供了許多用于游戲開發(fā)的工具和函數(shù)。使用Pygame,你可以創(chuàng)建各種類型的游戲,包括平臺游戲、射擊游戲、角色扮演游戲等。
程序代碼及思路
我們先準備一張背景圖,如上所示,嫦娥奔月怎么能少得了嫦娥呢。我們在準備一個嫦娥的圖片。我們計劃是通過嫦娥的圖片實現(xiàn)奔月的過程。
安裝相關庫
import pygame import sys
初始化
# 初始化pygame pygame.init() # 設置窗口大小 infoObject = pygame.display.Info() width = infoObject.current_w height = infoObject.current_h print(width,height) window_size = (width,height-50) screen = pygame.display.set_mode(window_size)
設置標題
Pygame的初始化和窗口大小設置部分,接下來,我們設置標題和加載相應的圖片。
# 設置標題
pygame.display.set_caption("嫦娥奔月")
# 加載嫦娥的圖片
chang_e = pygame.image.load('chang_e.jpg')
# 加載背景圖片
background_image = pygame.image.load('background.png')
# 縮放背景圖片以匹配窗口大小
background_image = pygame.transform.scale(background_image, window_size)
# 設置嫦娥的初始位置
chang_e_pos = [width*0.84, height*0.66]我們執(zhí)行的效果是這樣的:

游戲主程序
# 游戲主循環(huán)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN: # 監(jiān)聽鍵盤按下事件
if event.key == pygame.K_q: # 判斷是否按下 Q 鍵
pygame.quit()
sys.exit()嫦娥奔月
我們接下來就是按鍵控制移動,以及移動到月亮的位置顯示奔月成功。
# 檢測按鍵事件
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
chang_e_pos[0] -= 1
if keys[pygame.K_RIGHT]:
chang_e_pos[0] += 1
if keys[pygame.K_UP]:
chang_e_pos[1] -= 1
if keys[pygame.K_DOWN]:
chang_e_pos[1] += 1
# 清屏
screen.fill((255, 255, 255))
# 繪制背景圖片
screen.blit(background_image, (0, 0))
# 繪制嫦娥
screen.blit(chang_e, chang_e_pos)
# 檢查圖片是否接近(250,100)
if abs(chang_e_pos[0] - 250) < 10 and abs(chang_e_pos[1] - 100) < 10:
sus = pygame.image.load('嫦娥奔月.jpg')
font = pygame.font.Font('myfont.ttf', 40) # 設置字體和大小
tip = font.render('嫦娥奔月成功', True, (255, 0,0))
#text = font.render("嫦娥奔月成功!", True, (255, 0,0)) # 創(chuàng)建文本
#screen.blit(text, (30, 30)) # 將文本繪制到屏幕上
screen.blit(sus,(683,350))
screen.blit(tip,(683,360))
# 更新屏幕顯示
pygame.display.update()
效果展示

全部源碼
import pygame
import sys
# 初始化pygame
pygame.init()
# 設置窗口大小
infoObject = pygame.display.Info()
width = infoObject.current_w
height = infoObject.current_h
print(width,height)
window_size = (width,height-50)
screen = pygame.display.set_mode(window_size)
# 設置標題
pygame.display.set_caption("嫦娥奔月")
# 加載嫦娥的圖片
chang_e = pygame.image.load('chang_e.jpg')
# 加載背景圖片
background_image = pygame.image.load('background.png')
# 縮放背景圖片以匹配窗口大小
background_image = pygame.transform.scale(background_image, window_size)
# 設置嫦娥的初始位置
#chang_e_pos = [width*0.84, height*0.66]
# 游戲主循環(huán)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN: # 監(jiān)聽鍵盤按下事件
if event.key == pygame.K_q: # 判斷是否按下 Q 鍵
pygame.quit()
sys.exit()
# 檢測按鍵事件
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
chang_e_pos[0] -= 1
if keys[pygame.K_RIGHT]:
chang_e_pos[0] += 1
if keys[pygame.K_UP]:
chang_e_pos[1] -= 1
if keys[pygame.K_DOWN]:
chang_e_pos[1] += 1
# 清屏
screen.fill((255, 255, 255))
# 繪制背景圖片
screen.blit(background_image, (0, 0))
# 繪制嫦娥
screen.blit(chang_e, chang_e_pos)
# 檢查圖片是否接近(250,100)
if abs(chang_e_pos[0] - 250) < 10 and abs(chang_e_pos[1] - 100) < 10:
sus = pygame.image.load('嫦娥奔月.jpg')
font = pygame.font.Font('myfont.ttf', 40) # 設置字體和大小
tip = font.render('嫦娥奔月成功', True, (255, 0,0))
#text = font.render("嫦娥奔月成功!", True, (255, 0,0)) # 創(chuàng)建文本
#screen.blit(text, (30, 30)) # 將文本繪制到屏幕上
screen.blit(sus,(683,350))
screen.blit(tip,(683,360))
# 更新屏幕顯示
pygame.display.update()
# 退出游戲前釋放資源
pygame.quit()以上就是使用Pygame制作中秋嫦娥奔月小游戲的詳細內(nèi)容,更多關于Pygame中秋小游戲的資料請關注腳本之家其它相關文章!
相關文章
Python Django安裝配置模板系統(tǒng)及使用實戰(zhàn)全面詳解
本文首先介紹了Django模板系統(tǒng)的基礎知識,接著探討了如何安裝和配置Django模板系統(tǒng),然后深入解析了Django模板的基本結構、標簽和過濾器的用法,闡述了如何在模板中展示模型數(shù)據(jù),最后使用一個實際項目的例子來演示如何在實際開發(fā)中使用Django模板系統(tǒng)2023-09-09
Python使用SQLAlchemy模塊實現(xiàn)操作數(shù)據(jù)庫
SQLAlchemy 是用Python編程語言開發(fā)的一個開源項目,它提供了SQL工具包和ORM對象關系映射工具,使用SQLAlchemy可以實現(xiàn)高效和高性能的數(shù)據(jù)庫訪問,下面我們就來學習一下SQLAlchemy模塊的具體應用吧2023-11-11
對Python中實現(xiàn)兩個數(shù)的值交換的集中方法詳解
今天小編就為大家分享一篇對Python中實現(xiàn)兩個數(shù)的值交換的集中方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

