最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Pygame制作中秋嫦娥奔月小游戲

 更新時(shí)間:2023年09月14日 10:23:24   作者:極客飛虎  
中秋節(jié)是中國(guó)傳統(tǒng)的重要節(jié)日之一,起源于嫦娥奔月的神話故事,在中秋節(jié)這個(gè)特殊的日子里,人們不僅會(huì)欣賞明亮的月亮和嫦娥奔月的美麗故事,還會(huì)舉行一些慶祝活動(dòng),接下來(lái),我們使用Pygame制作“嫦娥奔月”小游戲,感興趣的朋友可以自己動(dòng)手試一試

前言

中秋節(jié)是中國(guó)傳統(tǒng)的重要節(jié)日之一,起源于嫦娥奔月的神話故事。一個(gè)名叫逢蒙的人發(fā)現(xiàn)了這個(gè)秘密,他企圖威脅嫦娥交出藥丸。在緊急情況下,嫦娥為了保護(hù)后羿,不得不吞下了那包藥。結(jié)果,她立即感覺(jué)身體飄離了地面,沖出窗口,向天上飛去。由于她牽掛著丈夫,她飛到了離人間最近的月亮上,成為了仙女。

在中秋節(jié)這個(gè)特殊的日子里,人們不僅會(huì)欣賞明亮的月亮和嫦娥奔月的美麗故事,還會(huì)舉行一些慶?;顒?dòng)。接下來(lái),我們使用Pygame制作“嫦娥奔月”小游戲。

準(zhǔn)備工作

  • pygame
  • sys

Pygame是一個(gè)用于開(kāi)發(fā)2D游戲的Python庫(kù),它提供了許多用于游戲開(kāi)發(fā)的工具和函數(shù)。使用Pygame,你可以創(chuàng)建各種類型的游戲,包括平臺(tái)游戲、射擊游戲、角色扮演游戲等。

程序代碼及思路

我們先準(zhǔn)備一張背景圖,如上所示,嫦娥奔月怎么能少得了嫦娥呢。我們?cè)跍?zhǔn)備一個(gè)嫦娥的圖片。我們計(jì)劃是通過(guò)嫦娥的圖片實(shí)現(xiàn)奔月的過(guò)程。

安裝相關(guān)庫(kù)

import pygame  
import sys  

初始化

# 初始化pygame
pygame.init()  
# 設(shè)置窗口大小
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)

設(shè)置標(biāo)題

Pygame的初始化和窗口大小設(shè)置部分,接下來(lái),我們?cè)O(shè)置標(biāo)題和加載相應(yīng)的圖片。

# 設(shè)置標(biāo)題  
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)  
# 設(shè)置嫦娥的初始位置
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)聽(tīng)鍵盤(pán)按下事件  
            if event.key == pygame.K_q:  # 判斷是否按下 Q 鍵  
                pygame.quit()  
                sys.exit()

嫦娥奔月

我們接下來(lái)就是按鍵控制移動(dòng),以及移動(dòng)到月亮的位置顯示奔月成功。

# 檢測(cè)按鍵事件  
    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)  # 設(shè)置字體和大小
        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()  
# 設(shè)置窗口大小
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)  
# 設(shè)置標(biāo)題  
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)  
# 設(shè)置嫦娥的初始位置
#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)聽(tīng)鍵盤(pán)按下事件  
            if event.key == pygame.K_q:  # 判斷是否按下 Q 鍵  
                pygame.quit()  
                sys.exit()
    # 檢測(cè)按鍵事件  
    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)  # 設(shè)置字體和大小
        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制作中秋嫦娥奔月小游戲的詳細(xì)內(nèi)容,更多關(guān)于Pygame中秋小游戲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python中sympy庫(kù)求常微分方程的用法

    python中sympy庫(kù)求常微分方程的用法

    這篇文章主要介紹了python中sympy庫(kù)求常微分方程的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python YAML文件的讀寫(xiě)操作詳解

    Python YAML文件的讀寫(xiě)操作詳解

    這篇文章主要介紹了Python讀寫(xiě)yaml文件,yaml 是專門(mén)用來(lái)寫(xiě)配置文件的語(yǔ)言,非常簡(jiǎn)潔和強(qiáng)大,之前用ini也能寫(xiě)配置文件,有點(diǎn)類似于json格式,下面關(guān)于Python讀寫(xiě)yaml文件的詳細(xì)資料,需要的小伙伴可以參考一下
    2022-08-08
  • python基于opencv檢測(cè)程序運(yùn)行效率

    python基于opencv檢測(cè)程序運(yùn)行效率

    這篇文章主要介紹了python基于opencv檢測(cè)程序運(yùn)行效率,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Tensorflow 實(shí)現(xiàn)修改張量特定元素的值方法

    Tensorflow 實(shí)現(xiàn)修改張量特定元素的值方法

    今天小編就為大家分享一篇Tensorflow 實(shí)現(xiàn)修改張量特定元素的值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python連接到PostgreSQL數(shù)據(jù)庫(kù)的方法詳解

    Python連接到PostgreSQL數(shù)據(jù)庫(kù)的方法詳解

    顧名思義,PostgreSQL?是一款為高效管理數(shù)據(jù)庫(kù)系統(tǒng)而創(chuàng)建的?SQL?系統(tǒng)軟件,這篇文章主要為大家詳細(xì)介紹了創(chuàng)建與?PostgreSQL?上的數(shù)據(jù)庫(kù)的連接的過(guò)程,需要的小伙伴可以了解下
    2023-10-10
  • python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5窗口布局控件QStackedWidget詳細(xì)使用方法

    python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5窗口布局控件QStackedWidget詳細(xì)使用方法

    這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5窗口布局控件QStackedWidget詳細(xì)使用方法,需要的朋友可以參考下
    2020-02-02
  • Django實(shí)現(xiàn)基于類的分頁(yè)功能

    Django實(shí)現(xiàn)基于類的分頁(yè)功能

    這篇文章主要為大家詳細(xì)介紹了Django實(shí)現(xiàn)基于類的分頁(yè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • pandas中DataFrame的merge操作的實(shí)現(xiàn)

    pandas中DataFrame的merge操作的實(shí)現(xiàn)

    本文主要介紹了pandas中DataFrame的merge操作的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • python數(shù)學(xué)模塊(math/decimal模塊)

    python數(shù)學(xué)模塊(math/decimal模塊)

    這篇文章主要介紹了python數(shù)學(xué)模塊(math/decimal模塊),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Python安裝并操作redis實(shí)現(xiàn)流程詳解

    Python安裝并操作redis實(shí)現(xiàn)流程詳解

    這篇文章主要介紹了Python安裝并操作redis實(shí)現(xiàn)流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

昭通市| 安丘市| 邯郸县| 旬邑县| 安国市| 德安县| 巨鹿县| 永仁县| 白河县| 资兴市| 稷山县| 中江县| 城步| 军事| 当雄县| 古丈县| 巴楚县| 东城区| 遵化市| 建始县| 定州市| 盐津县| 高淳县| 昭苏县| 舟曲县| 扶风县| 莎车县| 新宾| 廊坊市| 台州市| 西盟| 神池县| 英山县| 曲靖市| 武穴市| 酉阳| 鲁山县| 镇坪县| 逊克县| 四会市| 恩平市|