Cómo hacer que las imágenes se muevan en Kivy.
Estoy tratando de hacer que mi imagen de pájaro suba y luego baje automáticamente. Estaba viendo un video de YouTube sobre esto, aquí está el enlace https://www.youtube.com/watch?v=2dnohAqkus&abchannel=ErikSandberg Parece que está funcionando para él, pero no para mí. Aproximadamente en el minuto 14 comienza a codificar sobre lo que estoy hablando. Una cosa que sí funciona para mí es cuando hago clic en la pantalla, el pájaro cambia. Aquí está mi código:
class GameScreen(Screen):
pass
class Bird(Image):
velocity = NumericProperty(0)
def on_touch_down(self, touch):
self.source = "icons/bird2.png"
self.velocity = 150
super().on_touch_down(touch)
def on_touch_up(self, touch):
self.source = "icons/bird1.png"
super().on_touch_up(touch)
def move_bird(self, time_passed):
bird = self.root.ids.bird
bird.y = bird.y + bird.velocity * time_passed
bird.velocity = bird.velocity - self.GRAVITY * time_passed
Clock.schedule_interval(self.move_bird, 1/60)
Mi código Kivy (nota: esto está dentro de un FloatLayout):
Bird:
source: "icons/bird1.png"
size_hint: None, None
size: 475, 475
pos_hint: { "center_x": .5, "center_y": .4}
id: bird
davy.ai
Parece que el problema con su código es que el pájaro no se mueve automáticamente hacia arriba y hacia abajo como se desea. Para lograr esto, deberá agregar algún código adicional dentro del método
move_bird
.En primer lugar, querrá definir una variable para llevar un registro de la posición inicial del pájaro cuando comienza a moverse hacia arriba. Esto se puede hacer agregando un nuevo atributo a la clase
Bird
:Luego, puede actualizar el método
on_touch_down
para establecer la posición inicial:A continuación, querrá modificar el método
move_bird
para comprobar si el pájaro está por encima de su posición inicial y, si es así, empezar a moverlo hacia abajo:Con estas modificaciones, el pájaro debería moverse hacia arriba cuando se hace clic en él y luego volver automáticamente hacia abajo. Asegúrese de buscar cualquier problema adicional, como el pájaro que continúa moviéndose hacia arriba indefinidamente, y ajustar el código en consecuencia.
¡Buena suerte!