1
2
3
4
5
6
7
8
9 import random
10 import pilas
11
15
23
32
41
43 """Intenta obtener el actor mas cerca de la pantalla (z mas pequeño) en la posición (x, y)
44
45 :param x: Posición horizontal del punto selección.
46 :param y: Posición vertical del punto selección.
47 """
48
49
50 for sprite in pilas.escena_actual().actores[::-1]:
51 if sprite.colisiona_con_un_punto(x, y):
52 return sprite
53
54 return None
55
56
57 -def fabricar(clase, cantidad=1, posiciones_al_azar=True, *k, **kv):
58 """Genera muchas instancias de una clase particular asignando posiciones aleatorias.
59
60 >>> pilas.utils.fabricar(pilas.actores.Caja, 30)
61
62 :param clase: Clase del objeto a generar.
63 :param cantidad: Cantidad de objetos que se van a crear de esa clase.
64 :param posiciones_al_azar: True o False indicando si se tienen que dar posiciones al azar.
65 """
66 objetos_creados = []
67
68 for x in range(cantidad):
69 if posiciones_al_azar:
70 x = random.randint(-300, 300)
71 y = random.randint(-200, 200)
72 else:
73 x = 0
74 y = 0
75
76 kv['x'] = x
77 kv['y'] = y
78 nuevo = clase(*k, **kv)
79 objetos_creados.append(nuevo)
80
81 return pilas.grupo.Grupo(objetos_creados)
82