PhysicsObject

Convierte 'brushes' normales estáticos en objetos de física manipulables por el jugador.
También permite definir características concretas para cada objeto de física de nuestro escenario.
Parámetros de esta entidad:
Model
'Model' al que le afectarán todos estos parámetros.
Este 'model' debe ser el objeto de física que queremos definir. Puede ser cualquier 'brush' que hayamos definido
como 'model' en nuestro escenario.
Origin
Posición de esta entidad dentro del escenario.
La entidad 'PhysicsObject' debes colocarla en el interior del objeto lo más centrada posible.
mass
Peso del objeto.
Variando el valor de este parámetro nos permitirá ajustar el comportamiento de este objeto frente a diferentes fuerzas que le afecten.
isAffecteBDYGravity
Nos permite definir si a este objeto de afectará la fuerza de la gravedad o no.
Indicar el valor 0 para que no le afecte o bien el valor 1 para que si le afecte.
Poner el valor 0 si hemos puesto 'True' como valor en el parámetro 'GravedadPorImpacto'.
respondsToForces
¿ Responde a fuerzas externas ?
Permite definir si a este objeto le afectan las fuerzas que se puedan ejercer sobre él.
Indicar el valor 0 para que no le afecten o bien el valor 1 para que si le afecten.
linearDamping
Velocidad de avance o caída del objeto.
Variando este valor nos permitirá definir diferentes velocidades en el desplazamiento de este objeto cuando le afecten las fuerzas.
Usando el valor 5 el objeto no se moverá.
angularDamping
Velocidad de rotación del objeto.
Variando este valor nos permitirá definir diferentes velocidades de rotación de este objeto cuando le afecten las fuerzas.
Usando el valor 5 el objeto no rotará.
physicsScale
No se usa
Next
Siguiente entidad 'PhysicsObject' para aplicarle fuerza en caso de que usemos diferentes objetos de física encadenados.
tiempoAvance
Tiempo sin tener en cuenta la gravedad al empujar el objeto.
Se usa para regular cuanto tiempo permanece este objeto avanzando horizontalmente trás afectarle una fuerza antes de comenzar a descender por
efecto de la gravedad.
tiempoRetroceso
Tiempo sin tener en cuenta la gravedad al tirar del objeto.
Se usa para regular cuanto tiempo permanece este objeto avanzando horizontalmente cuando tira de él el jugador antes de descender por
efecto de la gravedad.
levantarObjeto
¿ El jugador puede levantar el objeto ?
Permite definir si a este objeto lo podrá levantar verticalmente el jugador o no.
Indicar el valor False para que no lo pueda levantar o bien el valor True para que si lo pueda levantar.
ascensorObjeto
¿ Objeto ascensor controlado por el jugador ?
Permite definir si a este objeto lo podrá usar el jugador como ascensor o no.
Indicar el valor False para que no lo pueda usar como ascensor o bien el valor True para que si lo pueda usar como ascensor.
Bloqueo_ver
¿ Ver zona de bloqueo del objeto 'model' ?
Con valor 'True', aparecerá un bloque azul transparente que envolverá al objeto. Se usa para poder ver la zona de
influencia y colisión de este objeto.
Bloqueo_escala
Tamaño de la zona de bloqueo del objeto 'model'
Permite ajustar el tamaño de la zona de bloqueo de este objeto, pudiendo de esta forma hacerla más grande o más pequeña que el
volumen del propio objeto.
Indicar el valor 0.5 para reducir esta zona a la mitad.
Indicar el valor 2 para aumentar esta zona al doble.
Colision_MAX_objeto
Corrección de la zona máxima de colisión del objeto. Permite valores entre 0 y 2000.
Al igual que el parámetro 'Bloqueo_escala', también permite variar la zona de bloqueo de este objeto, pero en lugar de escalarlo
todo nos permite aumentar la zona por el lado del vértice mayor de la caja de colisión.
Colision_MIN_objeto
Corrección de la zona mínima de colisión del objeto. Permite valores entre 0 y 2000.
Al igual que el parámetro 'Bloqueo_escala', también permite variar la zona de bloqueo de este objeto, pero en lugar de escalarlo todo nos permite aumentar la zona por
el lado del vértice menor de la caja de colisión.
ColisionModel
'Model' de colisión para lanzar comandos de 'ColisionCommandsFile'
Este parámetro nos permite seleccionar uno de los 'model' que tengamos definido en nuestro escenario para que cuando el objeto de física que estamos definiendo
colisione con él, lance el fichero de comandos que hayamos indicado en el parámetro 'ColisionCommandsFile'.
ColisionCommandsFile
Nombre del fichero de comandos para colisión con 'ColisionModel' (sin extensión .INI)
Indicar aquí el nombre de fichero de comandos que queremos lanzar cuando el objeto de física que estamos definiendo colisione con el 'model' que hemos indicado
en el parámetro 'ColisionModel'.
El fichero .INI debes copiarlo en la carpeta 'Comandos' de Entidad 3D.
Flota
¿ Flota en líquidos ?
Permite definir si a este objeto flota en líquidos o no.
Indicar el valor False para que no flote o bien el valor True para que si flote.
Enemigos_lo_mueven
¿ Lo pueden mover los enemigos o sus disparos ?
Permite definir si a este objeto puede ser movido cuando enemigos o sus disparos colisionen con él.
Indicar el valor False para que no lo puedan mover o bien el valor True para que si lo puedan mover.
GravedadPorImpacto
¿ Aplicar gravedad si recibe un disparo del jugador ?
Permite que un objeto al que inicialmente no le afecta la gravedad, si le afecte a recibir un impacto de alguna de las armas de jugador. Se puede usar en cuadros, lámparas,
estanterías, etc...
Indicar el valor False para que no variar la gravedad aunque reciba un impacto.
Indicar el valor True y el valor 0 en el parámetro 'isAffecteBDYGravity', para que si le afecte la gravedad al recibir un impacto.
Para que funcione todo lo que definas en un 'PhysicsObject' recuerda crear una entidad 'PhysicalSystem' y
asociar en esa entidad la endidad 'PhysicsObject' que acabas de definir.
El jugador puede tirar de un objeto de física situándose junto a él y pulsando al mismo tiempo las teclas de avanzar y tirar del objeto.
El jugador puede usar un objeto de física como ascensor subiéndose a él y pulsando la tecla levantar el objeto.
El jugador puede levantar un objeto de física situándose junto a él y pulsando al mismo tiempo las teclas de avanzar y levantar objeto.
El jugador puede lanzar un objeto de física de la misma forma que lo levanta pero soltándolo en frente de él y empujándolo rápidamente.
Consulta el anexo 'Ejemplos de objetos de física' para ver ejemplos completos donde se muestra el uso combinado de las
entidades PhysicsObject, PhysicalSystem y
PhysicsJoint.