欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

在中秋節(jié)這個特殊的日子里,人們不僅會欣賞明亮的月亮和嫦娥奔月的美麗故事,還會舉行一些慶?;顒印=酉聛恚覀兪褂肞ygame制作“嫦娥奔月”小游戲。

準備工作

  • pygame
  • sys

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

程序代碼及思路

我們先準備一張背景圖,如上所示,嫦娥奔月怎么能少得了嫦娥呢。我們在準備一個嫦娥的圖片。我們計劃是通過嫦娥的圖片實現(xiàn)奔月的過程。

安裝相關(guān)庫

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è)置標題

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

# 設(shè)置標題  
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)聽鍵盤按下事件  
            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)  # 設(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è)置標題  
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)聽鍵盤按下事件  
            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)  # 設(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制作中秋嫦娥奔月小游戲的詳細內(nèi)容,更多關(guān)于Pygame中秋小游戲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python游戲?qū)崙?zhàn)項目之智能五子棋簡易版

    python游戲?qū)崙?zhàn)項目之智能五子棋簡易版

    利用Python實現(xiàn)智能五子棋,實現(xiàn)之后發(fā)現(xiàn)我玩不贏它!本篇為你帶來用python編寫的五子棋小游戲,文中給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值
    2021-09-09
  • Python Django安裝配置模板系統(tǒng)及使用實戰(zhàn)全面詳解

    Python Django安裝配置模板系統(tǒng)及使用實戰(zhàn)全面詳解

    本文首先介紹了Django模板系統(tǒng)的基礎(chǔ)知識,接著探討了如何安裝和配置Django模板系統(tǒng),然后深入解析了Django模板的基本結(jié)構(gòu)、標簽和過濾器的用法,闡述了如何在模板中展示模型數(shù)據(jù),最后使用一個實際項目的例子來演示如何在實際開發(fā)中使用Django模板系統(tǒng)
    2023-09-09
  • python全局變量與局部變量的區(qū)別及使用

    python全局變量與局部變量的區(qū)別及使用

    在python中定義和使用函數(shù)方法的時候,會遇到局部變量和全局變量,本文就來介紹一下python全局變量與局部變量的區(qū)別及使用,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Python 超時請求或計算的處理方案

    Python 超時請求或計算的處理方案

    這篇文章主要介紹了Python 超時請求或計算的處理方案,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • python實現(xiàn)簡易通訊錄修改版

    python實現(xiàn)簡易通訊錄修改版

    這篇文章主要為大家詳細介紹了python實現(xiàn)簡易通訊錄的修改版,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python使用SQLAlchemy模塊實現(xiàn)操作數(shù)據(jù)庫

    Python使用SQLAlchemy模塊實現(xiàn)操作數(shù)據(jù)庫

    SQLAlchemy 是用Python編程語言開發(fā)的一個開源項目,它提供了SQL工具包和ORM對象關(guān)系映射工具,使用SQLAlchemy可以實現(xiàn)高效和高性能的數(shù)據(jù)庫訪問,下面我們就來學(xué)習(xí)一下SQLAlchemy模塊的具體應(yīng)用吧
    2023-11-11
  • Python List remove()實例用法詳解

    Python List remove()實例用法詳解

    在本篇內(nèi)容里小編給大家整理了一篇關(guān)于Python List remove()方法及實例,有需要的朋友們跟著學(xué)習(xí)下。
    2021-08-08
  • 探索Python列表合并技術(shù)提高代碼靈活性

    探索Python列表合并技術(shù)提高代碼靈活性

    本文將深入研究Python中列表合并的幾種方法,通過詳細的示例代碼和細致的解釋,呈現(xiàn)一場關(guān)于列表操作的精彩探險,無論是初學(xué)者還是有經(jīng)驗的開發(fā)者,通過學(xué)習(xí)本文,將更加熟練地運用這些方法,提升代碼的效率和可讀性
    2024-01-01
  • 對Python中實現(xiàn)兩個數(shù)的值交換的集中方法詳解

    對Python中實現(xiàn)兩個數(shù)的值交換的集中方法詳解

    今天小編就為大家分享一篇對Python中實現(xiàn)兩個數(shù)的值交換的集中方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 如何使用Python處理登錄與驗證碼

    如何使用Python處理登錄與驗證碼

    Python 爬蟲在抓取需要登錄的網(wǎng)站數(shù)據(jù)時,通常會遇到兩個主要問題:登錄驗證和驗證碼處理,這些機制是網(wǎng)站用來防止自動化程序過度抓取數(shù)據(jù)的主要手段,本文將詳細講解如何使用 Python 處理登錄與驗證碼,以便進行順利的數(shù)據(jù)抓取,需要的朋友可以參考下
    2024-11-11

最新評論