03-28-2020, 02:28 AM
Buenas!
Manera rápida de resolverlo sobre lo que tienes: la función isinstance() acepta una tupla (lista inmutable) de clases que quieres comprobar. Por tanto sólo necesitas un único método colisiónEnemigo() con la siguiente forma:
Fíjate en la llamada a isinstance(actor,(Enemigo, Enemigo2)), cómo pregunta por varias clases a la vez.
No entiendo la duda que tienes con el punto de genbeta
self es el rectángulo, que tiene un miebro llamado p de tipo Punto, que a su vez contiene un miembro llamado x. X pertenece a Punto, no a Rect.
Manera rápida de resolverlo sobre lo que tienes: la función isinstance() acepta una tupla (lista inmutable) de clases que quieres comprobar. Por tanto sólo necesitas un único método colisiónEnemigo() con la siguiente forma:
Code:
def colisionEnemigo(self):
for actor in actores:
if(isinstance(actor,(Enemigo, Enemigo2)) and self.distancia(actor) < 100):
engine.sprites[actor.sprite].set_scaling(1,1)
else:
engine.sprites[actor.sprite].set_scaling(2,2)
Fíjate en la llamada a isinstance(actor,(Enemigo, Enemigo2)), cómo pregunta por varias clases a la vez.
No entiendo la duda que tienes con el punto de genbeta
Code:
self.p.x
self es el rectángulo, que tiene un miebro llamado p de tipo Punto, que a su vez contiene un miembro llamado x. X pertenece a Punto, no a Rect.