Package pilas :: Package actores :: Module utils
[hide private]
[frames] | no frames]

Source Code for Module pilas.actores.utils

 1  # -*- encoding: utf-8 -*- 
 2  # Pilas engine - A video game framework. 
 3  # 
 4  # Copyright 2010 - Hugo Ruscitti 
 5  # License: LGPLv3 (see http://www.gnu.org/licenses/lgpl.html) 
 6  # 
 7  # Website - http://www.pilas-engine.com.ar 
 8   
 9  import random 
10  import pilas 
11   
12 -def ordenar_actores_por_valor_z():
13 "Ordena todos los actores para que se impriman con 'z' como criterio de orden." 14 pilas.escena_actual().actores.sort()
15
16 -def insertar_como_nuevo_actor(actor):
17 """Coloca a un actor en la lista de actores a imprimir en pantalla. 18 19 :param actor: Actor que se quiere comenzar a mostrar en pantalla. 20 """ 21 pilas.escena_actual().actores.append(actor) 22 actor.escena = pilas.escena_actual()
23
24 -def eliminar_a_todos():
25 """Elimina a todos los actores de la escena.""" 26 a_eliminar = pilas.escena_actual().actores[1:] # evita borrar el fondo. 27 28 for x in a_eliminar: 29 x.eliminar() 30 31 pilas.escena_actual().actores = []
32
33 -def destruir_a_todos():
34 """Elimina a los actores inmediatamente (evita que exploten o hagan algo).""" 35 a_eliminar = pilas.escena_actual().actores 36 37 for x in a_eliminar: 38 x.destruir() 39 40 pilas.escena_actual().actores = []
41
42 -def obtener_actor_en(x, y):
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 # Busca el objeto que colisiones ordenando en sentido inverso. 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