Hola,
Estoy empezando con Kivy ("Kivy - Open source library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps." ) y siguiendo su tutorial hay una cosa que no entiendo.
Creo que la duda es de programación orientada a objetos y no específica de Kivy. El lenguaje empleado es Python. Bueno al grano: (el siguiente codigo hace referencia a este paso del tutorial)
class PongBall(Widget):
velocity_x = NumericProperty(1)
velocity_y = NumericProperty(0)
velocity = ReferenceListProperty(velocity_x, velocity_y)
def move(self):
self.pos = Vector(*self.velocity) + self.pos
class PongGame(Widget):
ball = ObjectProperty(None)
def serve_ball(self):
self.ball.center = self.center
self.ball.velocity = Vector(4,0).rotate(randint(0,360))
def update(self, dt):
self.ball.move()
#bounce off top and bottom
if (self.ball.y < 0) or (self.ball.top > self.height):
self.ball.velocity_y *= -1
#bounce off left and right
if (self.ball.x < 0) or (self.ball.right > self.width):
self.ball.velocity_x *= -1
Mi duda es la siguiente:
- ¿Por qué puede hacer "self.ball.move()" dentro de la clase "PongGame" si el procedimiento "move()" está dentro la clase "PongBall"? ¿Como los conecta? ¿No se supone que hay "encapsulamiento"?