在开始实现乒乓球游戏前,如果看过A Simple Paint App和Kv language可以跳过一些内容,当然了,肯定是没有看过的,所以得一步一步来。
首先就是一个基本的实现代码了,运行之后是一个黑色的空窗口:
main.py
from kivy.app import App
from kivy.uix.widget import Widget
class PongGame(Widget):
pass
class PongApp(App):
def build(self):
return PongGame()
if __name__ == '__main__':
PongApp().run()
然后就是创建一个叫pingpong.kv
的文件,简单来说就是用来给控件添加配置的,配置虽然可以直接写在代码里,但是面对越来越多的控件,这种方法不利于维护,所以kivy提供了这一套通过配置文件来维护界面样式的好东西。
pong.kv
#:kivy 2.0.0
<PongGame>:
canvas:
Rectangle:
pos: self.center_x -5, 0
size: 10, self.heigh
Label:
font_size: 70
center_x: root.width / 4
top: root.top - 50
text: "0"
Label:
font_size: 70
center_x: root.width * 3 / 4
center_x: root.width * 3 / 4
text: "0"
COMMON ERROR: The name of the kv file, e.g. pong.kv, must match the name of the app, e.g. PongApp (the part before the App ending).
kv 文件的名称(例如 pong.kv)必须与应用程序的名称匹配,例如 PongApp(应用程序结束前的部分).
需要知道的是,组件的大小可以通过修改组件的对应属性而自动更新,也就是程序可以控制组件的样式做出改变。同时如果窗口进行了缩放,组件也会进行缩放。
教程通篇下来,最后会实现球拍,球的运动轨迹,以及边界判断,球拍的反弹等,主要的知识点在于kv配置文件的理解,和对于py中的代码组织方式。