Documentación de Celestia

 
  4. CELX SCRIPTS  
  4.3. Objetos  
 

LUA es un lenguaje de programación orientado a objetos, lo que significa que se basa en la utilización de unas estructuras denominadas objetos. Estas estructuras son similares a variables compuestas por varios valores, pero además definen funciones que permiten manipular estos valores y acceder a la información almacenada. Los valores que componen el objeto reciben el nombre de atributos mientras que las funciones se denominan métodos. Con este paradigma de programación se pretende facilitar la creación de entidades que reflejen de una forma más naturas la realidad. Por ejemplo, si se quisiera definir un rectángulo en el programa, se utilizaría un objeto rectángulo que tendría como atributos la altura y la anchura del mismo y también tendría métodos para obtener y fijar estos atributos. Sería interesante que el objeto incluyera además un método que calculara el área del rectángulo actual.

Para la utilización de un objeto es necesario especificar primero su estructura. Esta definición recibe el nombre de clase, siendo los objetos pertenecientes a una clase casos concretos que tienen la estructura especificada. En el ejemplo anterior, la clase rectángulo sería la que indicara los atributos y métodos que van a componer el objeto, mientras que el objeto perteneciente a esta clase daría valores a estos atributos (por ejemplo altura igual a 20 centímetros y anchura igual a 40 centímetros), pudiéndose utilizar los métodos la su manipulación y consulta del objeto.

En los scripts CELX existen algunas clases predefinidas para permitir y facilitar la interacción del lenguaje con Celestia. Además existe un objeto ya creado de una de estas clases denominado celestia a partir del que se pueden obtener objetos de las restantes clases. Para ejecutar un método de este objeto o de cualquier otro se debe escribir una sentencia de la siguiente forma:

Variable = Nombre_del_objeto:Nombre_del_método(Parámetros)

En esta expresión se muestra que en la variable indicada se almacenará el valor retornado por el método (en caso de devolverse algo), pudiendo ser este valor de cualquier tipo, incluido un nuevo objeto. Es necesario escribir el nombre del objeto seguido de dos puntos (‘:’) y el nombre del método para llamar al método que se deseé. Por último, se deben escribir entre paréntesis y separados por comas (‘,’) los parámetros que el método necesite según su definición (los paréntesis deben escribirse aunque no se ponga ningún parámetro). Por ejemplo, el objeto celestia tiene un método que devuelve una cadena de texto con el estilo que se está utilizando para dibujar las estrellas, llamado getstarstyle, que no necesita ningún parámetro. Si se quisiera almacenar el texto devuelto en una variable de nombre estilo se debería escribir la sentencia:

estilo = celestia:getstarstyle()

Otro ejemplo sería la llamada al método setstarstyle de celestia,que fija el estilo de dibujo de las estrellas al que se le indique como parámetro. El método no devuelve ningún valor, por lo que la sentencia para establecer estilo disc sería:

celestia:setstarstyle(“disc”)

Finalmente, si lo que se quiere es llamar a un método de otra de las clases predefinidas de CELX, se tiene que llamar primero al método de celestia que lo retorna y almacenarlo en una variable para usarlo posteriormente. Por ejemplo, si se deseara llamar al método cancelgoto del objeto observer, se escribirían sentencias como las siguientes:

obs = celestia:getobserver()

obs:cancelgoto()

En un apartado posterior se detallan cuales son las clases predefinidas de CELX y los métodos que proporciona cada una de ellas.

 
 
Índice general