LAS IDEAS COMPARTIDAS, NO LLEGAN AL OLVIDO

sábado, 1 de mayo de 2010

Entender un Script 2

Despues del descanso que nos hemos tomado, (unos dias, jejeje), vamos a aprender a meter comentarios en nuestros scripts para que nos sea mas facil la comprension de los mismos y evitar liarnos cuando hagamos algun script demasiado largo.

Como podreis ver en la siguiente imagen hay una linea que empieza por doble barra ("//"), es asi como tenemos que empezara las lineas que queremos comentar, ya sea al principio de la linea o despues de una linea de codigo para explicar mejor que hacen en concreto.



Como introduccion al LSL o lenguaje de scripting de SL nos tiene que haber quedado claro estos conceptos:

1- Todo script en SL tiene que estar dentro de un Objeto.

2- Los scripts se componen de:

    2.1- Estados (en color rojo, que engloba eventos y funciones)
  
    2.2- Eventos (en color azul, que engloba las funciones)

    2.3- Funciones (que son las acciones que hace el Objeto)

3- Los scripts pueden tener comentarios para una mejor comprension de los mismos.

Ahora que tenemos un concreto sobre los scripts y como estan compuestos vamos a tratar mas detenidamente las partes de los scripts.

ESTADOS:

Los estados en los scripts nos permite esquematizar y organizar los distintos estados posibles que vamos a programar en el, aunque suene redundante, puedes llamar ade un estado a otro y viceversa, en scripts muy complejos en los que tiene que hacer muchas cosas, el uso de estados nos permite organizar y editar mas comodamente el programa, un ejemplo puede ser un script de una puerta en el que puedes definir un estado para abierto y otro para cerrado.

EVENTOS:

Los eventos son los encargados de actuar cuando se dan, existen eventos para muchisimas cosas, desde el inicio propio del script o el evento de hacer click en el, oir algo en un canal, detectar en general (avatares, objetos....), colisionar o chocar, recibir informacion desde internet......... y cada uno de estos eventos puede a su vez enteractuar con otros eventos.

FUNCIONES:

Las funciones son el alma matter del script, y es lo que nuestro programa va a hacer realmente, existen infinitud de funciones que podeis ver en la web que os he referenciado al principio de esta pequeña introduccion pero que os repito ahora nuevamente, de verdad echad un vistazo no tiene desperdicio.
http://wiki.secondlife.com/wiki/LSL_Portal/es . Por orientar un poco, existen funciones para casi todo, controlar un avatar, comunicarse con internet, para hacer particulas, cambiar estados de objetos como sus particularidades fisicas, de luz, de color.... para seguridadad, comunicaciones....

OPERADORES:

Cuando queremos realizar operaciones matematicas que nos ayuden a dar vida a nuestro programa y que tome decisiones, usamos operadores, en LSL hay cinco tipos de operadores, binarios, operaciones con dos valores (+,-,*,/,%,+=,-=,*=,/=,%=,&&,||,!,==,!=.<=.<,>=,>) bitwise, operaciones a nivel de bits (muy complejos y avanzados para esta guia), booleanos, que trabajan con valores de verdadero o falso (&&,||,!,==,!=,<=,<,>=,>), unitarios, de un solo valor (++,--,~,!) y por ultimo de asignacion libre como el que se le da a una variable.

VARIABLES:

Aunque he dejado casi para el final el tema de las variables, en un script estas van al principio, incluso antes del estado default de un script, esta zona superior (como podeis ver en la imagen, lineas 0 a 5, de la 7 a la 15 es un estado llamado door) se llama scope y es donde debemos definir todas las variables que vamos a usar en el script, aunque no le demos un valor, si es posible definir variables dentro del script pero es algo un tanto inusual.


He remarcado en negro el nombre de scope, porque en alguna ocasion al guardar un script, este nos dice (indicando con los numeros la linea y la posicion de la variable no definida):



Veamos que tipos de variables podemos usar:

- string (cadena de letras) sirve para almacenar un conjunto de caracteres.

- integer (numero entero) sirve para almacenar un numero entero, sin decimales.

- float (numero decimal) sirve para almacenar numero decimales usando el punto como coma.
- vector (tres numero decimales) almacena tres float para usarlos en FUNCIONES complejas, como por ejemplo unas coordenadas.

- rotation (cuatro numeros decimales) lo mismo que lo anterior pero con cuatro factores.

- key (clave) sirve para almacenar las UUID de lo que necesitemos, la UUID es: Universally Unique IDentifier, que traducido es un numero universal y unico de identificacion, que tiene todo en SL, (el avatar, un objeto, un script, un LM, una imagen, un archivo de audio......... todo, incluso los SIM´s)

- list (tabla de datos) sirve para almacenar datos mas complejos, como su nombre indica hace lista de los mismos, seria algo parecido a una variable multidimensional, ya que se puede hacer referencia a un dato almacenado dentro de ella dependiendo de su posicion.

Por ultimo, trataremos los condicionantes y los bucles:

El uso de condicionantes y bucles es muy recurrente dentro de un script, donde en ocasiones necesitamos en un mismo evento ejecutado nuestro programa actue de diferentes formas, dependiendo por ejemplo, si el que ejecuta el evento es un avatar, si este es su propietario, si esta o no en una lista, si tiene un grupo.... o si es un objeto, si tiene un nombre.....

Para todo esto y mas disponemos de siete condicionantes o bucles:

- IF ELSE (si / en caso contrario)

- WHILE ( mientras se de una condicion)

- DO WHILE (hacer mientras se de una condicion)

- FOR (para)

- JUMP (salto)

- RETURN (retorno)

- STATE (llamada a un estado)

Harvey Abeyante

No hay comentarios:

Publicar un comentario