PhysicsObject
Convierte bloques 'brushes' normales estáticos en bloques de física manipulables por el jugador.
También permite definir características concretas para cada bloque de física de nuestro nivel.
Parámetros de esta entidad:
Model
'Model' al que le afectarán todos estos parámetros.
Este 'model' debe ser el bloque de física que queremos definir. Puede ser cualquier bloque 'brush' que hayamos definido
como 'model' en nuestro nivel.
Origin
Posición de esta entidad dentro del nivel.
La entidad 'PhysicsObject' debes colocarla en el interior del bloque lo más centrada posible.
mass
Peso del bloque.
Variando el valor de este parámetro nos permitirá ajustar el comportamiento de este bloque frente a diferentes fuerzas que le afecten.
isAffecteBDYGravity
Nos permite definir si a este bloque 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 bloque 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 bloque.
Variando este valor nos permitirá definir diferentes velocidades en el desplazamiento de este bloque cuando le afecten las fuerzas.
Usando el valor 5 el bloque no se moverá.
angularDamping
Velocidad de rotación del bloque.
Variando este valor nos permitirá definir diferentes velocidades de rotación de este bloque cuando le afecten las fuerzas.
Usando el valor 5 el bloque no rotará.
physicsScale
No se usa
Next
Siguiente entidad 'PhysicsObject' para aplicarle fuerza en caso de que usemos diferentes bloque de física encadenados unos a otros.
tiempoAvance
Tiempo sin tener en cuenta la gravedad al empujar el bloque.
Se usa para regular cuanto tiempo permanece este bloque 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 bloque.
Se usa para regular cuanto tiempo permanece este bloque avanzando horizontalmente cuando tira de él el jugador antes de descender por
efecto de la gravedad.
levantarObjeto
¿ El jugador puede levantar el bloque ?
Permite definir si a este bloque 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
¿ Bloque ascensor controlado por el jugador ?
Permite definir si este bloque 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 bloque 'model' ?
Con valor 'True', aparecerá un cubo azul transparente que envolverá al bloque. Se usa para poder ver la zona de
influencia y colisión de este bloque.
Bloqueo_escala
Tamaño de la zona de bloqueo del bloque 'model'
Permite ajustar el tamaño de la zona de bloqueo de este bloque, pudiendo de esta forma hacerla más grande o más pequeña que el
volumen del propio bloque.
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 bloque. Permite valores entre 0 y 2000.
Al igual que el parámetro 'Bloqueo_escala', también permite variar la zona de bloqueo de este bloque, 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 bloque. Permite valores entre 0 y 2000.
Al igual que el parámetro 'Bloqueo_escala', también permite variar la zona de bloqueo de este bloque, 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 bloque 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 bloque de física que estamos definiendo colisione con el 'model' que hemos indicado
en el parámetro 'ColisionModel'.
El fichero .INI debe existir en la carpeta 'Comandos' de Entidad 3D.
Flota
¿ Flota en líquidos ?
Permite definir si a este bloque flota en líquidos o no.
Indicar el valor False para que no flote o bien el valor True para que sí flote.
Enemigos_lo_mueven
¿ Lo pueden mover los Bots enemigos o sus disparos ?
Permite definir si este bloque puede ser movido cuando Bots enemigos o sus disparos colisionen con él.
Indicar el valor False para que no lo puedan mover o bien el valor True para que sí lo puedan mover.
GravedadPorImpacto
¿ Aplicar gravedad si recibe un disparo del jugador ?
Permite que un bloque al que inicialmente no le afecta la gravedad, si le afecte al recibir un impacto de alguna
de las armas del jugador. Se puede usar en cuadros, lámparas, estanterías, etc... para que caigan al suelo si les dispra el jugador.
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 sí 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 bloque de física situándose junto a él y pulsando al mismo tiempo las teclas de avanzar y tirar del bloque.
El jugador puede usar un bloque de física como ascensor subiéndose a él y pulsando la tecla levantar el bloque.
El jugador puede levantar un bloque de física situándose junto a él y pulsando al mismo tiempo las teclas de avanzar y levantar bloque.
El jugador puede lanzar un bloque 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 bloques de física' para ver ejemplos completos donde se muestra el uso combinado de las
entidades PhysicsObject, PhysicalSystem y
PhysicsJoint.