<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          python寫的推箱子小游戲

          共 1470字,需瀏覽 3分鐘

           ·

          2020-08-06 06:32




          導(dǎo)語(yǔ)


          Python 功能強(qiáng)大,可以寫爬蟲、服務(wù)器、數(shù)據(jù)分析、AI……當(dāng)然,也可以寫游戲。

          用python寫了個(gè)推箱子小游戲,在這里分享給大家,讓我們愉快地開始吧~



          相關(guān)文件

          源代碼代碼&素材&可執(zhí)行文件:

          https://github.com/CharlesPikachu/Games/tree/master/Game12

          游戲圖片與音頻素材源于網(wǎng)絡(luò),未用于商業(yè)用途,如有侵權(quán)請(qǐng)聯(lián)系刪除。



          發(fā)


          Python版本:3.6.4

          相關(guān)模塊:

          pygame 模塊;

          以及一些Python自帶的模塊。



          環(huán)境搭建


          安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。



          先睹為快


          在cmd窗口運(yùn)行"python?Game12.py"文件即可。

          效果如下:




          原理簡(jiǎn)介


          游戲簡(jiǎn)介(來(lái)源:百度百科):

          經(jīng)典的推箱子是一個(gè)來(lái)自日本的古老游戲,目的是在訓(xùn)練你的邏輯思考能力。在一個(gè)狹小的倉(cāng)庫(kù)中,要求把木箱放到指定的位置,稍不小心就會(huì)出現(xiàn)箱子無(wú)法移動(dòng)或者通道被堵住的情況,所以需要巧妙的利用有限的空間和通道,合理安排移動(dòng)的次序和位置,才能順利的完成任務(wù)。

          控制方式:

          ↑↓←→鍵控制人物行動(dòng),r鍵重新開始本關(guān)。

          逐步實(shí)現(xiàn):

          Step1:定義游戲精靈類

          由于游戲涉及到碰撞檢測(cè),所以我們先來(lái)定義一些游戲精靈類,包括推箱子的人、箱子、墻和目標(biāo)位置指示標(biāo)記。

          首先我們來(lái)定義一下推箱子的人這個(gè)精靈類:

          他需要擁有可以移動(dòng)的能力,這里設(shè)置了一個(gè)模擬移動(dòng)的選項(xiàng),是為了通過(guò)模擬移動(dòng)判斷他是否可以向上/下/左/右移動(dòng)。

          因?yàn)榈貓D上的其他東西性質(zhì)類似,所以我們把它們定義成同一個(gè)精靈類(T_T其實(shí)性質(zhì)都類似,但是感覺(jué)還是有必要區(qū)分一下人和物的):

          其中箱子需要擁有可以移動(dòng)的能力,其他則不能移動(dòng)。模擬移動(dòng)選項(xiàng)的功能與之前類似。

          Step2:定義游戲地圖類

          這里我們定義一個(gè)游戲地圖類,目的是用該類來(lái)創(chuàng)建任意的游戲地圖。因此,該類應(yīng)當(dāng)可以增加并保存游戲元素(人、墻、箱子等),并在屏幕上把地圖畫出來(lái)。同時(shí)也應(yīng)當(dāng)自帶一個(gè)方法來(lái)判斷此地圖上的箱子是否都已經(jīng)送到了指定位置(這樣子方便切換關(guān)卡):

          Step3:定義游戲界面類

          游戲界面類負(fù)責(zé)解析levels文件夾下的游戲各關(guān)卡的地圖文件,并利用游戲地圖類創(chuàng)建并顯示游戲地圖:

          同時(shí)因?yàn)橛螒虻貓D面積>游戲窗口界面, 所以該類需要增加根據(jù)人物位置滾動(dòng)游戲地圖的功能:

          Step4:定義某關(guān)的游戲主循環(huán)

          主循環(huán)主要負(fù)責(zé)實(shí)例化游戲界面類,并根據(jù)按鍵檢測(cè)的結(jié)果對(duì)游戲界面類進(jìn)行一些操作:

          其中人物移動(dòng)的邏輯為:

          人移動(dòng)的目標(biāo)位置為空白格,則人移動(dòng);若撞到箱子,箱子可以和人方向一樣移動(dòng)一格,則人和箱子均移動(dòng);其他情況人和箱子均無(wú)法移動(dòng)。

          Step5:定義游戲開始、切換和結(jié)束界面

          做的比較簡(jiǎn)陋,直接給源碼吧。

          開始界面:

          切換界面:

          結(jié)束界面:

          Step6:實(shí)現(xiàn)游戲主函數(shù)

          把所有界面串起來(lái)就好啦:

          隨手加了個(gè)背景音樂(lè),應(yīng)該問(wèn)題不大吧T_T。

          All Done!完整源代碼詳見相關(guān)文件。

          https://github.com/CharlesPikachu/Games/tree/master/Game12




          本系列文章相關(guān)文件中均提供了打包好的版本,無(wú)需環(huán)境搭建即可運(yùn)行玩耍~

          作者:白露未晞me

          出處:Charles的皮卡丘



          _往期文章推薦_
          100行Python代碼的魔性聲控游戲




          瀏覽 28
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产最新地址 | 日本午夜精品 | 伊人三级 | 天堂AV2014 | 国产黄色影视 |