Участок кода на
python
class birds :
# Макет FloatLayot
display = ObjectProperty(None)
# Позиция птиц
x = (-40)
y = 800
x_final = 700
#Виджет Image
bird_only = Image()
def __init__ (self) :
Clock.schendule_interval (self.bird_only,10)
def bird (self) :
self.bird_only = Image (source = 'путь к изображению',size_hint = (None,None) ,size = (60,60),pos = (self.x,self.y)
self.display.add_widget(self.bird_only)
# Анимация
self.anim = Animation (x = self.x_final ,y = y ,d = 5)
self.anim.start(self.bird_only)
Я не стал прописывать импорты а так же исключил kv разметку.
Суть такова : птица вылетает за экран ,а затем виджет удаляется ,тем самым создавая бесконечный круговорот птиц в природе .
Как можно это реализовать,перерыл уже тонны информации , документации по этой теме мало и на официальном сайте выглядит не так развернуто как хотелось бы .
Если я делаю следующим образом в класс
birds добавляю функцию
delete birds :
def delete_birds (self) :
if self.x > 650 :
self.display.remove_widget(self.bird_only)
,
то ничего не происходит ,птичка просто вылетает за экран ,для проверки я поставил точку ее остановки на середине ,и соответственно мои догадки подтвердились .Птица просто остаётся на центре затем вылетает другая и так пока программа не зависнет .
Вероятнее всего переменная
x попросту не отслеживается .
Подскажите как можно исправить проблему и я был бы рад если бы хотя бы получилось найти документацию об этом .
Итоговый вариант :
class birds :
# Макет FloatLayot
display = ObjectProperty(None)
# Позиция птиц
x = (-40)
y = 800
x_final = 700
#Виджет Image
bird_only = Image()
def __init__ (self) :
Clock.schendule_interval (self.bird_only,10)
def delete_birds (self) :
if self.x > 650 :
self.display.remove_widget(self.bird_only)
def bird (self) :
self.bird_only = Image (source = 'путь к изображению',size_hint = (None,None) ,size = (60,60),pos = (self.x,self.y)
self.display.add_widget(self.bird_only)
# Анимация
self.anim = Animation (x = self.x_final ,y = y ,d = 5)
self.anim.start(self.bird_only)
self.delete_birds()