首頁>技術>

之前小帥b分享過這個

Python除了做ai,還能幹啥?

其中放了張 Kivy 的圖

什麼是 Kivy 呢

簡單點說它就是一個 Python 庫

你可以使用它開發 APP

像你常看到的使用者介面程式

多點觸控程式

都可以使用它來實現

而且

在不同的作業系統中的APP

都可以使用它來實現

剛好有 b 友問起

“怎麼玩呢”

那麼接下來就是

學習 Python 的正確姿勢

(此處應該刷一波:爺青回

今天

咱們來玩下官方的一個小例子

使用 Kivy 建立一個遊戲

在你的專案中

建立一個 main.py

然後匯入 Kivy

建立一個 App 例項

這樣就是最簡單的使用

不過現在執行起來啥也沒有

就一個黑乎乎的介面

我們來新增一下元件

匯入 UI 庫 Widget

建立一個元件 Widget 例項類

然後在 MyAPP 中呼叫它

這樣我們就可以在

MyGame中寫介面了

一般來說

UI分離出來寫會好一點

我們可以建立一個 kv 檔案

分離出來專門寫 UI

比如我們想在 MyGame 中

畫一條白色金箍棒

那麼就可以這樣

建立一個 my.kv

在裡面定義 MyGame

然後畫一個 canvas

定義好位置和大小

執行起來就是這樣

鐺鐺檔

接著在兩邊新增分數

可以使用 Label 元件來定義文字

預設為 0 分

接下來添加個球

可以建立一個球類

同樣的

在 kv 檔案中新增元件

可以在 MyGame 中新增 MyBall

這樣就可以在當前物件

畫球了~

看,球

那怎麼讓它動起來呢

我們知道要讓球動起來

就是以一定的速度不停的改變球的位置

可以先在 x 和 y 軸

定義它的速度

那麼要讓球動起來

就是要不停的去改變球的位置

我們可以使用 Clock 來建立定時呼叫

比如我們要一秒呼叫 60 次 update

就可以這樣

好爽啊

那麼我們在 update 方法中

不斷改變球的位置就可以了

在 kv 檔案中

定義 ball 物件 id

繫結好

這樣我們就可以在 py 中

拿到球物件了

然後就可以在 update 方法中

讓球運動起來

如果碰到邊邊角角

就讓它反向操作

我們還可以定義一個發球方法

也就是讓它從中間隨機發球

方法寫好了

那麼現在就可以讓它跑起來啦

走起

接下來

把左右兩個玩家的棒棒畫出來

同樣的

我們可以建立一個

棒棒物件

接著在 kv 中定義

棒棒的大小

接著在 MyGame 中定義這個物件

這樣左邊的棒棒就出來啦

棒棒物件可以共用

右邊的棒棒只需要修改下位置就可以了

這樣就都有兩根棒棒了

有了棒棒之後

就要來控制它了

我們要去拖動棒棒

就要知道拖動的位置

可以使用 on_touch_move

來監聽拖動的位置

這樣我們就可以拿到

使用者觸發的座標位置

我們只需要讓棒棒上下移動就可以了

如果是左邊就改變左邊棒棒的位置 y

如果是右邊就改變右邊棒棒的位置 y

像這樣

那麼接下來就是接球了

我們主要判斷的是

球是不是和棒棒碰撞了

如果是

我們讓球反彈和改變速度

可以使用 collide_widget 方法判斷

這裡主要是當它們碰撞了

那就拿到球的速度

然後每次反彈的時候

就讓球加速

這樣如果兩個使用者一直接到球

那麼球的移動速度就起飛

我們在 update 方法中

不斷的呼叫它進行判斷

這時候執行起來是這樣的

接下來就是記分了

沒接到的就對方加分

然後重新發球

可以定義一個 score 變數

然後在 kv 中繫結這個變數

接著我們在 update 方法中

判斷一下

沒接到就對方加一分

然後重新發球

執行一波

哈哈

一個簡單的遊戲就完成啦

過程是不是挺好玩的

你也去試試吧

關於 Kivy

有時間我會繼續給你講解

那麼我們下回見啦

peace!

更多happy

進入小帥b的

34
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 當你透過 Python 請求網站得到一堆無厘頭的 JS 時