pilasengine.fisica

pilasengine.fisica.circulo

class pilasengine.fisica.circulo.Circulo(fisica, pilas, x, y, radio, dinamica=True, densidad=1.0, restitucion=0.56, friccion=10.5, amortiguacion=0.1, sin_rotacion=False, sensor=False)

Clases base: pilasengine.fisica.figura.Figura

Representa un cuerpo de circulo.

Generalmente estas figuras se pueden construir independientes de un actor, y luego asociar.

Por ejemplo, podríamos crear un círculo:

>>> circulo_dinamico = pilas.fisica.Circulo(10, 200, 50)

y luego tomar un actor cualquiera, y decirle que se comporte cómo el circulo:

>>> mono = pilas.actores.Mono()
>>> mono.imitar(circulo_dinamico)
definir_radio()
escala

definir escala del circulo

get_radius()
get_scale()
radio

definir radio del circulo

set_radius(radio)
set_scale(escala)

pilasengine.fisica.contact_listener

class pilasengine.fisica.contact_listener.ObjetosContactListener(pilas)

Clases base: Box2D.Box2D.b2ContactListener

Gestiona las colisiones de los objetos para ejecutar funcionés.

BeginContact(*args, **kwargs)
EndContact(*args, **kwargs)
PostSolve(contact, old)
PreSolve(contact, old)
agregar_colision(fixture_1, fixture_2)
detener_figuras_estaticas(contact)
eliminar_colision(fixture_1, fixture_2)

pilasengine.fisica.figura

class pilasengine.fisica.figura.Figura(fisica, pilas)

Clases base: object

Representa un figura que simula un cuerpo fisico.

Esta figura es abstracta, no está pensada para crear objetos a partir de ella. Se usa como base para el resto de las figuras cómo el Circulo o el Rectangulo simplemente.

actor_que_representa_como_area_de_colision
definir_colision(actor)
definir_dinamica(d)
definir_escala_de_gravedad(s)
definir_posicion(x, y)

Define la posición para el cuerpo.

Parámetros:
  • x – Posición horizontal que se asignará al cuerpo.
  • y – Posición vertical que se asignará al cuerpo.
definir_rotacion(angulo)
definir_sensor(s)
definir_sin_rotacion(rotacion)
definir_velocidad_lineal(dx=None, dy=None)
definir_x(x)

Define la posición horizontal del cuerpo.

Parámetros:x – El valor horizontal a definir.
definir_y(y)

Define la posición vertical del cuerpo.

Parámetros:y – El valor vertical a definir.
detener()

Hace que la figura regrese al reposo.

dinamica
eliminar()

Quita una figura de la simulación.

empujar(dx=None, dy=None)
escala_de_gravedad
get_rotation()
get_velocidad_x()
get_velocidad_y()
get_x()
get_y()
impulsar(dx, dy)
obtener_colision()
obtener_dinamica()
obtener_escala_de_gravedad()
obtener_rotacion()
obtener_sensor()
obtener_sin_rotacion()
obtener_velocidad_lineal()
obtener_x()

Retorna la posición horizontal del cuerpo.

obtener_y()

Retorna la posición vertical del cuerpo.

rotacion

define la rotacion.

sensor
set_rotation(angulo)
set_velocidad_x(dx)
set_velocidad_y(dy)
set_x(x)
set_y(y)
sin_rotacion
velocidad_x

define la velocidad horizontal.

velocidad_y

define la velocidad vertical.

x

define la posición horizontal.

y

define la posición vertical.

pilasengine.fisica.poligono

pilasengine.fisica.rectangulo

class pilasengine.fisica.rectangulo.Rectangulo(fisica, pilas, x, y, ancho, alto, dinamica=True, densidad=1.0, restitucion=0.56, friccion=10.5, amortiguacion=0.1, sin_rotacion=False, sensor=False, plataforma=False)

Clases base: pilasengine.fisica.figura.Figura

Representa un rectángulo que puede colisionar con otras figuras.

Se puede crear un rectángulo independiente y luego asociarlo a un actor de la siguiente forma:

>>> rect = pilas.fisica.Rectangulo(50, 90, True)
>>> actor = pilas.actores.Pingu()
>>> actor.imitar(rect)
alto

definir alto del rectangulo

ancho

definir ancho del rectangulo

definir_escala(escala)
definir_vertices()
escala

definir escala del rectangulo

get_height()
get_scale()
get_width()
set_height(alto)
set_scale(escala)
set_width(ancho)

Contenido del módulo

class pilasengine.fisica.Fisica(escena, pilas)

Clases base: object

Representa un simulador de mundo fisico, usando la biblioteca Box2D (version 2.1).

Circulo(x=0, y=0, radio=20, dinamica=True, densidad=1.0, restitucion=0.56, friccion=10.5, amortiguacion=0.1, sin_rotacion=False, sensor=False)
Rectangulo(x=0, y=0, ancho=50, alto=20, dinamica=True, densidad=1.0, restitucion=0.56, friccion=10.5, amortiguacion=0.1, sin_rotacion=False, sensor=False, plataforma=False)
Tipo del valor devuelto:
 rectangulo.Rectangulo
actualizar()

Realiza la actualización lógica del escenario.

cantidad_de_cuerpos()
capturar_figura_con_el_mouse(figura)

Comienza a capturar una figura con el mouse.

Parámetros:figura – La figura a controlar con el mouse.
crear_bordes_del_escenario()

Genera las paredes, el techo y el suelo.

crear_cuerpo(definicion_de_cuerpo)

Genera un Body de box2d.

Parámetros:definicion_de_cuerpo – Los parámetros de configuración de un cuerpo para Box2d.
crear_paredes((ancho, alto), restitucion=0)

Genera dos paredes para el escenario.

Parámetros:
  • ancho – El ancho de las paredes.
  • alto – El alto de las paredes.
  • restitucion – El grado de conservación de energía ante una colisión.
crear_suelo((ancho, alto), restitucion=0)

Genera un suelo sólido para el escenario.

Parámetros:
  • ancho – El ancho del suelo.
  • alto – Alto del suelo.
  • restitucion – El grado de conservación de energía ante una colisión.
crear_techo((ancho, alto), restitucion=0)

Genera un techo sólido para el escenario.

Parámetros:
  • ancho – El ancho del techo.
  • alto – Alto del techo.
  • restitucion – El grado de conservación de energía ante una colisión.
cuando_mueve_el_mouse(x, y)

Gestiona el evento de movimiento del mouse.

Parámetros:
  • x – Coordenada horizontal del mouse.
  • y – Coordenada vertical del mouse.
cuando_suelta_el_mouse()

Se ejecuta cuando se suelta el botón de mouse.

definir_gravedad(x, y)

Define la gravedad del motor de física.

Parámetros:
  • x – Aceleración horizontal.
  • y – Aceleración vertical.
definir_gravedad_x(x)
definir_gravedad_y(y)
despertar_a_todos()
eliminar_figura(figura)

Elimina una figura del escenario.

Parámetros:figura – Figura a eliminar.
eliminar_para_liberar_memoria()
eliminar_paredes()

Elimina las dos paredes del escenario.

eliminar_suelo()

Elimina el suelo del escenario.

eliminar_techo()

Elimina el techo del escenario.

gravedad_x
gravedad_y
iniciar()
iterar()
obtener_cuerpos_en(x, y)

Retorna una lista de cuerpos que se encuentran en la posicion (x, y) o retorna una lista vacia [].

Parámetros:
  • x – posición horizontal del punto a analizar.
  • y – posición vertical del punto a analizar.
obtener_distancia_al_suelo(x, y, dy)

Obtiene la distancia hacia abajo desde el punto (x,y).

El valor de ‘dy’ tiene que ser positivo.

Si la funcion no encuentra obstaculos retornara dy, pero en paso contrario retornara un valor menor a dy.

Parámetros:
  • x – posición horizontal del punto a analizar.
  • y – posición vertical del punto a analizar.
obtener_gravedad_x()
obtener_gravedad_y()
optimizar_figuras_estaticas(estado=True)

Le indica al motor de fisica que no calcule colisiones en figuras que están en reposo.

pausar_mundo()

Detiene la simulación física.

reanudar_mundo()

Restaura la simulación física.

reiniciar()

Elimina todos los objetos físicos y vuelve a crear el entorno.

set_gravedad_x(nuevo_x)
set_gravedad_y(nuevo_y)