|
Escrito por viktor hian
|
|
lunes, 14 de mayo de 2007 |
Scripts. Primera parteHola visitantes de SecondLife, a muchos os habrá llamado la atención esos pequeños trozos de códígo, conocidos cómo scripts, que "dan vida" a nuestras creaciones o a nuestros avatares.En CreaSl somos un grupo de gente que ayudamos, a la vez que aprendemos, podrás vernos prácticamente a casi todas las horas del día y de la noche en nuestro SandBox, yo soy Viktor Hian.Existen ya muchos avatares que dominan la técnica del diseño y construcción de scripts, pero tampoco está demás comenzar desde cero, para aquellos que llegáis nuevos a este mundo virtualUn script es un trozo de código realizado en un lenguaje de programación que tiene como finalidad realizar un proceso, en ocasiones como respuesta a algo, por ejemplo, cuando tocamos un objeto.Los script se asocian a objetos que creamos, o a nuestro propio avatar. Podemos crear un script directamente dentro del objeto, desde la pestaña Contenido.
O directamente en el inventario para ser utilizado más tarde. Un script sencillo puede adoptar la siguiente forma:
state_entry() es el evento que se pone en marcha cuando el script se ejecuta, o es sacado del inventario el objeto que lo contiene. Todo lo que ha de ejecutarse debe ir encerrado entre llaves { }.
Touch_start(integer total_number) es otro evento que se ejecuta cuando el objeto es tocado (touch). El número de veces que tocamos el objeto, es almacenado en la variable total_number. Después de cada sentencia no debemos olvidar poner ‘;’ (punto y coma), en otro caso el proceso de guardado y verificación nos dará un error. Esto no se aplica cuando se declara el evento, como se puede ver en el ejemplo.Una vez finalizado un script este debe ser Guardado, momento que SL aprovecha para comprobar su sintaxis y ponerlo en marcha si la casilla Running está marcada.
Si un script está mal escrito dará un error, otras veces los errores aparecen durante la ejecución del script en el objeto, por ejemplo si tenemos uno que ejecuta un sonido y este no existe junto al script en la carpeta Contenido.
Un pequeño ejemplo: default { state_entry() { llSetText("Mi primer script.",<1,1,1>,1.0); } } |
En un script la parte que se ejecuta, siempre empieza por default, seguido de {.llSetText() pone el texto "Mi primer script”, encima de un objeto. Los tres ‘unos’ representan el color del mismo, en el formato rojo, verde y azul: <r,v,a>. <0.0.0> es negro y <1,1,1> es blanco. Valores intermedios (entre 0 y 1) dan tonalidades de cada color, y el resultado es la mezcla de los mismos.El siguiente valor especifica la consistencia del texto, así si ponemos el valor 1 será sólido y si ponemos el valor 0 será invisible, valores intermedios producirán semitransparencia con el texto.Debemos observar que: tantas llaves “{“ hemos abierto, tantas llaves “}” debemos cerrar.
Veamos un ejemplo paso a paso:Partimos de que el programa cliente de SL que tenemos instalado en el PC es con el idioma español.Primero creamos un objeto (prim en el lenguaje de SL). Puede ser cualquiera, así que ponemos un cubo (caja) que está el primero.Es recomendable dar a cada objeto un nombre único cuando es creado, ya que en caso contrario, nos podemos encontrar en el inventario con múltiples objetos que tienen el mismo nombre. El nombre lo podemos asignar dentro de la pestaña General. También podemos cambiar el nombre de un objeto directamente dentro del inventario, si tenemos los permisos correspondientes. Una vez creado, seleccionamos el objeto con el botón derecho del ratón y damos Editar en el menú circular.Marcamos la pestaña Contenido (la última de las que aparecen en la ventana que nos permite manipular el objeto creado). Podemos ver que la carpeta Contenido está vacía y que tenemos un botón que nos permite crear un nuevo script. También es recomendable dar al script un nombre que indique lo que hace.
Al pulsar en este botón nos aparece una ventana de edición donde podemos escribir el código. SL escribe de forma automática un script base, donde aparecen dos eventos:Estos eventos ya se explicaron más arriba, sin embargo podemos observar que en este caso no aparece ningún texto encima del objeto, sino que aparece encima de la zona dedicada al chat.llSay() se encarga de ello, el primer valor es un canal de comunicación, en este caso el 0, que es un canal público, por lo que todos los avatares que estén cerca podrán leer el texto que aparece entre comillas. A partir del 1 en adelante son canales privados que se suelen utilizar para pasar información de un objeto a otro, o que solo ve el propietario del objeto.Una vez terminado, guardamos y cerramos todo. Metemos el objeto (take) en el inventario y lo volvemos a sacar, momento en el que aparecerá el texto encima del chat: “Hola Avatar”. Si ahora tocamos en objeto (clic con el botón izquierdo del ratón) nos aparecerá el segundo texto: “Me tocaste”, lo mismo que si elegimos la opción Touch del menú circular.
Viktor Hian
|
|
Modificado el ( martes, 27 de mayo de 2008 )
|
|