2016-07-20 2 views
0

저는 프로그래밍에 익숙하지 않고 Kivy에서 게임을 만들기로 결정했습니다. 아주 간단한 문제가 붙어 있습니다. 점수를 표시하는 버튼과 라벨이있는 경우 on_press 이벤트를 사용하여 점수를 높이려면 어떻게해야합니까?Kivy 버튼 및 게임 점수

예컨대 버튼을 누르면 점수가 1로 변경됩니다.

또한 모든 것을 파이썬 파일로 작성하는 것이 좋으며, 아니면 kv 파일을 사용해야하나요?

답변

0

파이썬 전용 또는 kv 언어를 사용할 수 있습니다. 그것은 전적으로 당신에게 달려 있습니다. 이 경우 버튼 기능을 호출하고 레이블 텍스트를 증가시킵니다. 두 가지 예를 만듭니다. 하나는 파이썬 전용이고, 다른 하나는 키비 언어와 결합 된 것입니다. 파이썬과 kivy 언어를 사용

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() 

와 같은 응용 프로그램 :

이는 파이썬의 예입니다.

파이썬 파일 :

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