之前小帥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的