Kivy 按钮和游戏得分

Kivy button and game score

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

例如当按下按钮时,分数变为 1,依此类推。

此外,是将所有内容都写入 Python 文件更好还是我也应该使用 kv 文件?

只能使用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 和基维语。

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