Ps.可去知乎搜索「雨露淺歌」大神,他寫的帖子裏有詳細講解和源碼。dom
遊戲概述、玩法:經過鍵盤的↑鍵來控制小球往上走,當鬆開↑鍵時,小球以必定速度向下掉,小球每越過一根棒加1000分,越過一個飛鏢加2000分,當小球碰到棒或者飛鏢時,生命減一,同時還設置了暫停鍵,開始鍵,本局分數和歷史最高分。
字體
遊戲準備:安裝pygame庫spa
pip install pygame 安裝pygame設計
安裝中3d
安裝完成blog
(注: 查看全部庫 pip list ; 卸載某庫 pip uninstall xxx; 更新某庫 pip install --upgrade xxx)隊列
經過鍵盤的↑鍵來控制小球往上走,當鬆開↑鍵時,小球以必定速度向下掉,小球每越過一根棒加1000分,越過一個飛鏢加2000分,當小球碰到棒或者飛鏢時,生命減一,同時還設置了暫停鍵,開始鍵,本局分數和歷史最高分。遊戲
背景顏色爲黑色,遊戲名爲「跳躍的小球」。事件
實例代碼:圖片
運行以上程序,就能夠看到名爲「跳躍的小球」的黑色窗口。
首先咱們須要一張小球的圖片,而後導入它而且將它顯示在(0,0),也就是左上角的位置,即以左上角爲原點,越往右下,座標就越大,注意這裏的座標對應的是圖片的左上角。
定義一個Ball類,用來控制小球的位置,上升下落的速度。小球左邊的位置不變,頂部的位置發生變化便可,因此當小球上升時,頂部位置的座標減少,降低時,頂部位置的座標增大。
控制部分的代碼,當按下↑鍵時,小球上升,當鬆開時,小球降低。由於這是一個不斷刷新的過程,咱們要寫在while循環中。
由於星星是隨機分佈在屏幕中的,因此咱們要先導入random中的randint方法,並導入星星的圖片。
定義星星類
建立多顆星星並讓它移動起來,定義一個添加星星的方法
實例化星星隊列,調用添加星星的方法經過循環星星隊列將30顆星星顯示在屏幕上
2.4 棍棒
導入棒的圖片
而後定義棒類
添加棒的方法
實例化棒隊列,並調用添加棒的方法,經過循環棒隊列將20根棒顯示在距離屏幕最左邊(width,5*width)上
2.5飛鏢
飛鏢比棒複雜一點點,不過也是差很少的,我都思路是這樣的,將下面棒的四種擺放位置依次顯示,就造成了飛鏢。
先導入飛鏢圖片
定義飛鏢類
定義添加飛鏢的方法
而後實例化飛鏢隊列,並調用添加飛鏢的方法,將飛鏢顯示在屏幕上
導入字體
生命圖片的顯示、導入圖片。
與生命值部分代碼相同
先設置初始分數爲score = 0
而後顯示分數
注意:分數的增長,由於當小球越過棒和飛鏢時,分數就增長,故分數的增長和小球、棒和飛鏢的距離有關,因此要在顯示它們時判斷它們的距離。
遊戲結束的時候會顯示遊戲結束,本局得分,歷史最高分和再來一遍字樣,咱們都要把它們顯示出來,由於點擊再來一遍是從新開始遊戲,爲了好肯定它的區域,我採用了以圖片顯示的方式,而其它的都是以文字方式顯示。
顯示分數和最高分數,由於要保存最高分數,因此咱們要新建一個文本文件score.txt,設置文本開始所存的分數爲prescore=0,最高分爲0.
2.9 暫停鍵
把鼠標移到暫停或者開始鍵時,按鍵變亮,當鼠標移除來時,按鍵變暗,首先導入圖片
設置圖片的位置
由於當暫停時,除了小球、棒和飛鏢不顯示,其它的都顯示,因此要設置一個暫停變量pause來控制,剛開始咱們固然設置爲False。由於分數,生命,星空和暫停或開始鍵在遊戲沒結束的時候始終顯示,因此把它們放在if not pause:else語句以外。而其餘的根據邏輯關係放在指定位置便可,由於當鼠標停在或者按下暫停和開始鍵時,圖片會變化,因此在獲取事件循環中要多加幾個判斷。
在獲取事件源中添加邏輯代碼
三、運行結果
3.2 遊戲暫停
3.3 遊戲結束
、