<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>

          【pygame】10分鐘用Python編寫一個(gè)貪吃蛇小游戲

          共 1221字,需瀏覽 3分鐘

           ·

          2020-11-06 05:04

          點(diǎn)擊上方“Python亂燉”,選擇“星標(biāo)”公眾號(hào)

          貪吃蛇,大家應(yīng)該都玩過(guò)。當(dāng)初第一次接觸貪吃蛇的時(shí)候 ,還是能砸核桃的諾基亞上,當(dāng)時(shí)玩的不亦樂(lè)乎。今天,我們用Python編程一個(gè)貪吃蛇游戲,下面我們先看看效果:


          好了,先介紹一個(gè)思路

          所有的游戲最主要的內(nèi)容都是程序的內(nèi)循環(huán),這才是保證一個(gè)游戲能夠正常運(yùn)行的前提。

          以下是編寫貪吃蛇小游戲的主要思路。


          廢話不多說(shuō),我們直接來(lái)講解如何利用Python進(jìn)行貪吃蛇的編寫吧

          一、調(diào)用庫(kù)以及初始設(shè)置

          1. 調(diào)用第三方庫(kù)

          Python與其他語(yǔ)言很不一樣的一點(diǎn)在于他有很多的第三方庫(kù)可以調(diào)用。在Python編寫游戲時(shí),pygame是一個(gè)很簡(jiǎn)單上手的第三方庫(kù),可以通過(guò)pip直接安裝。安裝方法在之前的文章中已經(jīng)講過(guò),就不再贅述。想要了解更多pygame功能的朋友也可以查閱官方的文檔。

          這就是編寫貪吃蛇時(shí)我們需要調(diào)用的庫(kù)。


          2 .初始設(shè)置

          我們通過(guò)這幾行代碼來(lái)初始化pygame,定義窗口(邊界)的大小,窗口的標(biāo)題和圖標(biāo)。


          3. 定義顏色變量

          由于我們需要用到一些顏色,而Python是不自帶的。所以我們需要定義幾個(gè)顏色。


          二、GameOver

          之前提到,所有游戲最重要的部分是循環(huán)。而GameOver函數(shù)就是跳出這個(gè)循環(huán)的條件。這里給出當(dāng)蛇吃到自己身體或者碰到邊界時(shí)顯示的界面(判斷死亡的代碼會(huì)在之后展示)


          三、貪吃蛇與樹(shù)莓

          接下來(lái)介紹游戲的主題部分,即貪吃蛇與蛇莓的顯示以及運(yùn)動(dòng)。

          1. 定義初始位置

          我們將整個(gè)界面看成許多20*20的小方塊,每個(gè)方塊代表一個(gè)單位,蛇的長(zhǎng)度就可以用幾個(gè)單位表示啦。這里蛇的身體用列表的形式存儲(chǔ),方便之后的刪減。


          2 .鍵盤輸入判斷蛇的運(yùn)動(dòng)

          我們需要通過(guò)鍵盤輸入的上下左右鍵或WASD來(lái)控制蛇類運(yùn)動(dòng),同時(shí)加入按下Esc就退出游戲的功能。


          貪吃蛇運(yùn)動(dòng)有一個(gè)特點(diǎn):不能反方向運(yùn)動(dòng)。所以我們需要加入限制條件。


          接下來(lái)就是將蛇頭按照鍵盤的輸入進(jìn)行轉(zhuǎn)彎操作,并將蛇頭當(dāng)前的位置加入到蛇身的列表中。


          3 .判斷是否吃到樹(shù)莓

          如果蛇頭與樹(shù)莓的方塊重合,則判定吃到樹(shù)莓,將樹(shù)莓?dāng)?shù)量清零;而沒(méi)吃到樹(shù)莓的話,蛇身就會(huì)跟著蛇頭運(yùn)動(dòng),蛇身的最后一節(jié)將被踢出列表。


          4 .重新生成樹(shù)莓

          當(dāng)樹(shù)莓?dāng)?shù)量為0時(shí),重新生成樹(shù)莓,同時(shí)分?jǐn)?shù)增加。


          5. 刷新顯示層

          每次蛇與樹(shù)莓的運(yùn)動(dòng),都會(huì)進(jìn)行刷新顯示層的操作來(lái)顯示。有點(diǎn)類似于動(dòng)畫(huà)的"幀"。


          6. 判斷是否死亡

          當(dāng)蛇頭超出邊界或者蛇頭與自己的蛇身重合時(shí),蛇類死亡,調(diào)用GameOver。


          7. 控制游戲速度

          為了增加難度,我們?cè)O(shè)置蛇身越長(zhǎng)速度越快,直到達(dá)到一個(gè)上限。


          到這里,貪吃蛇小游戲就寫完了。怎樣,簡(jiǎn)單不?

          - 完 -


          掃一掃下面的二維碼
          一起學(xué)習(xí)進(jìn)步哦~


          “掃一掃回復(fù):學(xué)習(xí)資料”




          瀏覽 55
          點(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>
                  五月天性爱网站 | 琪琪五月丁香 | 成人无码一级A片在线 | 狠狠干狠狠撸 | 在线 亚洲 欧美 |