Kivy按钮和游戏分数

时间:2016-07-20 10:02:36

标签: python button label kivy

我是编程新手并决定在Kivy创建游戏。 我遇到了很简单的问题。如果有一个按钮和一个显示分数的标签,我如何使用on_press事件来增加分数?

e.g。当按下按钮时,分数变为1,依此类推。

另外,在Python文件中编写所有内容还是更好?还是应该使用kv文件?

1 个答案:

答案 0 :(得分:0)

您可以只使用python或kv语言。这完全取决于你。 在这种情况下,我们使按钮调用函数,增加标签文本。 我将举两个例子。一个只用python,一个用kivy语言。

这只是python中的一个例子:

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout

class Game(BoxLayout):

    def __init__(self,**kwargs):
        super(Game,self).__init__(**kwargs)

        self.count = 0

        self.orientation = "vertical"

        self.button = Button(on_press=self.increment, text="Increment")

        self.label = Label(text="0")

        self.add_widget(self.button)
        self.add_widget(self.label)


    def increment(self,*args):
        self.count += 1
        self.label.text = str(self.count)


class MyApp(App):
    def build(self):
        return Game()

使用python和kivy语言的相同应用程序。

Python文件:

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty

class Game(BoxLayout):

    label_text = StringProperty()
    def __init__(self,**kwargs):
        super(Game,self).__init__(**kwargs)
        self.count = 0
        self.label_text = str(self.count)

    def increment(self,*args):
        self.count += 1
        self.label_text = str(self.count)
        print self.label_text

class MyApp(App):
    def build(self):
        return Game()


MyApp().run()

和my.kv文件:

#:kivy 1.9.1

<Game>:
    orientation: "vertical"

    Button:
        text: "Increment"
        on_press: root.increment()

    Label:
        text: root.label_text