Cómo mover una imagen en Kivy solo cuando se presiona la imagen.
Estoy creando un juego en Kivy y me gustaría que una imagen se mueva solo cuando se presiona la imagen, pero actualmente, la imagen se mueve si se presiona en cualquier lugar de la pantalla. ¡A continuación está mi código!
main.py
class Ball(Image):
velocity = NumericProperty(0)
def on_touch_down(self, touch):
self.source = "icons/ball.png"
self.velocity = 275
super().on_touch_down(touch)
def on_touch_up(self, touch):
self.source = "icons/ball.png"
super().on_touch_up(touch)
class MainApp(App):
GRAVITY = 300
def move_ball(self, time_passed):
ball = self.root.ids.game_screen.ids.ball
ball.y = ball.y + ball.velocity * time_passed
ball.velocity = ball.velocity - self.GRAVITY * time_passed
main.kv
Ball:
source: “icons/ball.png”
size_hint: None, None
size: 500, 500
pos_hint: {“center_x”: 0.5}
id: ball
davy.ai
Para hacer que la imagen se mueva solo cuando se presione la imagen, necesitas modificar el método
on_touch_down
de la claseBall
. Actualmente, establece la velocidad de la pelota y llama al método super cada vez que hay un evento de toque. Para hacer que la imagen solo se mueva cuando se presiona, necesitas comprobar si el evento de toque está dentro de los límites de la imagen.Con esta modificación, la imagen solo se moverá cuando ocurra un evento de toque dentro de los límites de la imagen.