Lenguaje "LSL" - Seudocodigos
|
|
|
|
|
SEUDOCODIGO
Segunda entrega....
En esta entrega se tartara de ir moldeando un poco el algoritmo a lo que es el lenguaje como tal de secondlife "LSL"
Como primera medida vamos a general un script llendo a nuestro inventario en el menu "CREAR, NUEVO SCRIPT", una ves ya creado le damos doble click y nos aparecera nuestro compilador de secondlife.
Lo que nos saldra es un script por default, el cual ya se a explicado anterior mente en esta guia.
Ahora bien empesemos a tratar un poco mas afondo lo que tenemos en este lenguaje de programacion de (LSL), si bien ya sabemos que se nos genera en el codigo o mejor dicho que nos realiza este codigo, ahora miremos que es lo que posee o de que esta compuesto.
lo que podemos mirar en morado con el nombre de default, es nuestro estado de inicio, es como desir en otros lenguajes de programacion el void main() bueno tambien podemos generar nuestros propios estados, lo cual para los que ya son programadores como tal los entenderemos como en el caso de otro lenguaje de programacion como un subprograma teniendo al default como el pruincipal, LSL no tuiliza los hilos como tal por loq ue se aplica mas a un subprograma.
Tambien tenemos los eventos que son las acciones que realizaremos, y tenemos tambien nuestras funciones o librerias lo que se explicara a continuacion.
ESTADO:
Como lo explique anterior mente, es como nuestro MAIN o nuestro programa principal, esta declaracion la empleamos antes de cuanquier otro estadoq ue nosotros generemos ya que de no ser asi no saldra ubn error de sintaxsis, asi que tenemos que generar nuestro estado default y despues podremos colocar los estados que nosotros queramos.
Ejemplo:
default
{
state mi_estado; // pasa al estado que creamos llamado mi estado
}
mi_estado
{
mis parametros......
}
podemos declara cuantos estados nesesitemos al igual que tambien como veremos mas adelante no solo podemos pasar de un estado a otro sino que tambien podemos llamar a una notecard, o a otro script.
EVENTOS:
Los eventos los miraremos como una accion a realizar los cuales tendran nuestros llamados de funciones y nuestras instrucciones o comandos a realizar, y nos apareceran en azul, uno de los mas utilizados son los de entrada y los de toque, osea state_entry() y el touch_state()
pero no son los unicos que existen asi que mas adelante miraremos otros eventos.
FUNCIONES:
Las funciones las tendremos en cuenta como un llamado de algo que ya esta estipulado, osea una funcion la empleamos para realizar dicha accion la cual ya la tenemos y lo unico que tendremos que hacer es llamarla y colocar nuestros paremetros, me explico mejor,tenemos nuestro evento de entrada y nos realiza lo que queramos al igual que el evento de toque, en el ejemplo que vemos que nos sale el script default, notamos que tenemos la funcion de llSay() esta esta ya diseñada para imprimir por pantalla el texto que nosotros queremos. asi hay diferentes clases de funciones que nos van a realizar una accion, como por ejemplo que un objeto se nos mueva, llTargetOmega(), que nos cambie de psocion... ETC..
GRAMATICA DE EL LENGUAJE
Bueno daremos unha pequeña pausa para irnos metiendo en la gramatica de nuestro lenguaje, lo que conoseremos como la sintaxis, esta es importante para que no nos genere errores y tambien para poder entender el codigo de una forma mucho mas facil.
algo que tenemos que tener en cuenta simpre, es la declaracion correcta de nuestras funciones, o eventos, tener unos nombres correctos, el lenguaje es caso sencitivo esto quiere decir que nos diferencia de minusculas y mayusculas, asi que si en la declaracion de una funcion la colocamos con mayuscula y luego la llamamos con una minuscula ara de que nuestro compilador no encuentre dicha funcion o no la reconosca. tambien tenemos que tener en cuenta la inicializacion de cada estado, evento y funcion, y los parametros que tengamos alli o mejor dicho las acciones que le colocamos que realice nuestro codigo, a la vez su devido cierre.
default
{ // inicializa estado default
parametros.......
} // finaliza nuestro estado
como podemos ver esto lo aremos con uso de los corchetes { }
algo mas a tener en cuenta es identar nuestro codigo.
pero para los que no tienen idea de programacion se preguntaran que es identar?
bueno identar es como separar nuestro codigo para poderlo entender mejor que el codigo quede mucho mas organizado, asi lo tendremos por lineas y columnas, de una forma mucho mas facil de interpretar, para identar nuestro codigo lo armos en un orden cronologico o desendente, esto quiere desir que de acuerdo a u prioridad ira mas a la izquierda o a la derecha.
Ejemplo
default
{
state_entry()
{
llSay(0,"mirando la identacion de texto...");
}
}
como podemos apreciar tenemos en la columna 0 todo lo referente al estado default y de alli correremos a la derecha lo que se deribe de el, o mejor dicho lo que coloquemos dentro de dicho estado, ala vez que cada ves que se nos deribe algo lo seguiremos corriendo a la derecha.
tambien algo que tenemos que tomar en cuenta es el uso de la separacion o finalizacion de una funcion, esto va en la forma como la declaramos como por ejemplo tenemos la funcion de llSay(0,"texto"); y como podemos opserbar el canal 0 es separado por una coma y tenemos entre comillas nuestro texto y al finalizar nuestra funcion tendremos un punto y coma esto nos indicara que la funcion alli finaliza, esto es importante tenerlo en cuenta, todos los punto y comas, las comas y los corchetes ya que si nos falta o sobra uno, nos saldra un error de sintaxis.
Continuando con los estados, eventos y funciones tendremos que un estado lo tendremos entre un color rojo, los eventos entre azul y las funciones en rojo, tambien tendremos en naranja nuestro texto comentado y lo colocaremos con dobles de la siguiente forma.
// comentario
// comentario dos...
Como podemos apresiar nos aparecera el texto del siguiente color, algo que no podemos ahcer es lo que podemos hacer como por desir en JAVA, ó en C++ que es documentar un texto multilinea osea de varias lineas con esta declaracion.
/* texto multilinea
y varios comentarios
y un poco mas
y aca finalizo mi texto */
el siguiente ejemplo no lo podemos realizar en LSL y si queremos hacer un comentario de este tipo nos toca colocarlo de la siguiente forma.
// texto multilinea
// y varios comentarios
// y un poco mas
// y aca finalizo mi texto
Documentando cada linea independientemente con los dobles //
Ok hasta ahora solo nos emos introducido un poco y es nesesario saber todo esto para poder continuar ahora si miremos mas lo que nos interesa, y lo que ya emos visto en la primera entrega de este curso, transformando el seudocodigo a algo que nuestro compilador interprete en nuestro juego de secondlife, para ello cabe explicar que el moldeamiento que nosotros tendremos es una programacion orientada a objetos lo que mayormente se conose como (POO) ya que interactumos con avatares y objetos como tales para generarles alguna interacción.
bueno lo que se miro anteriormente fue para manejar un poco la logica de programacion y saber como podemos desirle a la maquina que nos realice sierta accion. ahora podemos empesar a mirar mas afondo todo esto.
ya que tenemos una idea de que son estados, eventos y funciones, miraremos las variables y su manejo y luego adentrarnos un poco mas en lo antes mencionado.
VARIABLES:
las variables simplemente son un espacio en memoria reservado para realizar alguna accion con ella o alojar un dato que bien puede ser asignado por el usuario o ya establecido por el programador que en este acaso seremos nosotros.
La variable se asigana en la memoria RAM, osea la memoria temporal.
No podemos declarar dos vairables con el mismo nombre, asi sea de tipos diferentes los cuales veremos a continuacion, ni tampoco declarar una variable con un nombre empiese con un numero, simpre deven ser declaradas con una letra y si contienen espacios deven ser separados por el guion bajo de la siguiente forma. nombre_variable.
Bueno teniendo esto encuenta miremos los tipos de variables que tenemos aca en secondlife
Tipos de variables
Entero |
INTEGER |
Caracter |
STRING |
Decimal |
FLOAT |
Desimal de 3 |
VECTOR |
Desimal de 4 |
ROTATION |
Clave |
KEY |
Tabla de datos (lista) |
LIST |
Teniendo en cuenta esto tambien tendremos que analizar que tenemos dos clases de variables, unas son internas y otras son variables globales, las internas nos serviran para determinado evento especifico y solo para ese en nuestra declaracion dentro del evento y las globales las tendremos al empesar nueswtro codigo y nos serviran para cualquier evento o estado donde la queramos llamar.
Al igual que con nuestra funcion el cierre de dicha variables sera con nuestro punto y coma, ahora veamos una declaracion correcta de nuestra variable.
Asiganmos el tipo de variable seguido por el nombre de nuestra variable y cerrado por el punto y coma.
<TIPO> <NOMBRE>
Nos queda de la siguiente forma
integer num; // tenemos declarada una variable de tipo entero
integer num2; //otra declaracion con un nombre diferente esta ves con el numero dos
integer num_3; // otra declaracion con separacion por el guion bajo
integer num 5; // MALA DECLARACION "los caracteres basios no los reconoce"
integer 25num; // MALA DECLARACION "El nombre no puede empesar con numero"
integer nume // MALA DECLARACION "No fue finalizada con el punto y coma"
Otra cosa a tener en cuenta lo antes ya mencionado es no tener nombre iguales en variables
bueno ahora miremos un ejemplo practico en nuestro compilardor con todo lo visto hasta ahora.

Como podemos apresiar nuestro codigo hasta ahora no tiene nada para realizar, solo tenemos la declaracion de las variables y el manejo de los estados e incluso coloque como pasar de un estado a otro estado.
Ahora miremos parte de la traducción de nuestro seudo codigo al LSL mientras bamos mirando mas cosas practicas.
si por ejemplo ya vamos a empesar a pasar nuestro seudocodigo a nuestro compilador de LSL pues bueno solo falta buscar por que codigo lo tenemos que cambiar, por ejemplo.
inicio
entero a;
estado_entrada()
inicio_evento
leer(a);
si (a<10)
inicio_si
a=a+3;
imprimir("el resultado fue",a);
fin_si
sino
a=a-3;
imprimir("el resultado fue",a);
fin_sino
fin_evento
fin
OK ahora miremos un ejemplo parecido en nuestro lenguaje de programacion de second life
asi como podemos efectuar captura de datos en LSL tambien lo podemos hacer.
A continuacion colocare un ejemplo.
string message;
integer channel = 0;
default
{
state_entry()
{
llSay(0, "inicio de evento");
}
touch_start(integer total_number)
{
llListen(0,"","","");
llSay(0, "Ingrese un valor de tipo numerico entero por el chat.");
}
listen(integer channel, string name, key id, string message)
{
llInstantMessage(llGetOwner(),llKey2Name(id) + " " +(string)message);
llSay(0,"el valor es: " + (string)message);
}
}
Bueno lo que hacemos en este script es masomenos lo que vimos en el seudocodigo, solo que no realizamos operaciones matematicas, sino que leemos lo que escriban en el chat cero (0) y lo sacamos nuevamnte por pantalla.
PAGINA AUN EN CONSTRUCCION...
Ahora miremos lo siguiente, los posibles errores que se nos pueden presentar.
1) Mensajes de error en tiempo de ejecución (run-time):
2) Mensajes de error en compilación :
|
Hoy habia 8 visitantes (8 clics a subpáginas) ¡Aqui en esta página!
|
|
|