使用 Python Kivy 开发 APP 之:创建一个小游戏玩玩

学习python的正确姿势

共 1555字,需浏览 4分钟

 · 2020-12-26


之前小帅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公众号





浏览 59
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报