Buenas, David,
Si te das cuenta de las cosas 'comunes' que hay entre los procesos (uno la creación de un hueso y otro para la del otro), podemos escribir el código de una manera parecida a ésta:
- 1) Crea un hueso
2) Nombra ese hueso.
3) Cambia su apariencia.
4) Cambia su color.
De todos los datos que necesitamos, los únicos que van a cambiar son la posición inicial, la final y el nombre. Con lo que puedes escribir una función cuyos argumentos sean precisamente ésos. Es decir, crearás huesos con la misma apariencia y el mismo color, pero esos datos serán los argumentos que definas en tu función, puesto que son los datos que varían de un hueso a otro.
De ese modo, tendríamos algo como:
Código: Seleccionar todo
fn creaHueso objInicial objFinal nombre tamaño =
(
miHueso = boneSys.createBone objInicial.position objFinal.position objInicial.transform[3]
miHueso.name = nombre
miHueso.width = miHueso.height = tamaño/2
miHueso.sidefins = on
miHueso.backfin = off
miHueso.frontFin = off
miHueso.wirecolor = color 0 0 255
)
De este modo, para llamar a tu función sólo necesitas darle un nodo que marque la posición inicial, otro que marque la final (ojo, el nodo, no la posición del mismo, ya que la buscamos dentro de la función), el nombre para tu hueso y un valor para el tamaño (así la función es más flexible):
creaHueso $Point01 $Point02 "Mario_Hueso01" 4.0
En una función, tus parámetros de entrada (argumentos) los usas dentro de la misma función. Es como si una noche quisieras encargar la cena para que te la lleven a casa, y tu saldo es de 30 euros. Sabes que necesitas un primer plato, un segundo, postre y bebida, pero aún no has decicido qué restaurante vas a elegir. Te guardas esos 30 euros durante toda la semana mientras vas decidiendo, pero no te los gastas en nada más.
Los argumentos de una función son esos datos: primer plato, segundo, postre y bebida. Usas esos datos 'comodín' dentro de la función. Por sí solos, no hacen nada, porque se refieren a algo que no es concreto (tú no puedes llamar al restaurante y decirles 'pónganme un primer plato', sino que tendrás que especificar cuál de todos quieres). Es cuando llamas a la función, una vez definida, cuando esos datos se hacen 'reales', sustituyendo los generales que escribiste por cosas que realmente tienes en la escena.
Se nota que es hora de cenar, ¿eh?
