Я попытался сделать собственный кокет-кликер, поэтому я создал виджет kivy и объявил изображение кучки как часть его. Каждый раз, когда вы нажимаете на wiget, счетчик поднимается, и номер отображается на этикетке. Все пошло нормально, после того как я получил помощь здесь, при переполнении стека, но теперь я столкнулся с проблемой, что виджет большой, поэтому, даже если я нажму на правый верхний угол, чтобы счетчик поднялся, aldoug я не нажал на кокет. Вот исходный код:Виджет Kivy больше, чем должен быть
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.uix.label import Label
from kivy.core.window import Window
from kivy.clock import Clock
from kivy.animation import Animation
from kivy.core.text.markup import *
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import NumericProperty
from kivy.properties import StringProperty
Builder.load_string('''
<Root>:
Kecks:
pos: 300, 300
size: 100, 100
<Kecks>:
Image:
pos: root.pos
id: my_image
source: root.weg
Label:
id: my_Label
font_size: 50
text: root.txt
center_x: 345
center_y: 200
''')
class Root(FloatLayout):
def __init__(self, *args, **kwargs):
super(Root, self).__init__(*args, **kwargs)
class Kecks(Widget):
count = NumericProperty(0)
amount = NumericProperty(1)
txt = StringProperty()
level = NumericProperty(1)
weg = StringProperty('piernik.png')
def __init__(self, *args, **kwargs):
super(Kecks, self).__init__(*args, **kwargs)
#self.txt = str(self.count)
Clock.schedule_interval(self.Update, 1/60.)
def Update(self, *args):
self.txt = str(self.count)
def on_touch_down(self, touch):
if self.collide_point(*touch.pos):
self.count += self.amount
class app(App):
def build(self):
Window.clearcolor = (10, 0, 0, 1)
return Root()
if __name__ == "__main__":
app().run()
У меня есть на изображении или на уровне виджета? – Gilgamesch
@Gilgamesch Я считаю, что просто измените свой существующий код ** on_touch_down ** с вашим ** классом ** Kecks **. – Anzel
Большое спасибо – Gilgamesch