Un "Hello World"

Vamos al típico ejemplo sencillo, directo, que muestra como mostrar un texto "hello world".
Creamos una carpeta para el ejemplo: "\myhelloworld" por ejemplo.

Ahí dentro meteremos el nlkengine.exe (ejecutable Windows dispnible en el SDK)

Si le damos al exe, se abrirá una pantalla en negro. Además en fullscreen. Eso es porque no encuentra ningún archivo de arranque ni nada. Verás que salen textos en amarillo, es información de depuración. Te estará indicando que no encuentra ningún archivo "main.pi".

NOTA: Si no se le indica otra cosa, "main.pi" es el nombre del script que busca por defecto el motor

Para quien no lo sepa, para salir de la aplicación tocará que hagas un ALT+F4 o bien ALT+TAB cambiar al escritorio y matar el proceso.

Bien, pues vamos a crear con un editor de texto el "main.pi". Te recomiendo el notepad++, más que nada porque en el SDK (carpeta Tools) viene el archivo para que puedas configurarte este editor con colorines.

Vamos poco a poco, vamos a crear nuestro archivo "main.pi"

class Service
{
     function Init ()
     {
     }
}

Ahora si le damos al "nlkengine.exe" vemos que se pone en fullscreen pero ya no saca ningún error. Bien!

Sin embargo, yo no se a vosotros, pero a mi, hacer pruebas y estar cambiando a fullscreen me supone un rollo, más que nada por el cambio de contexto y que se hace pesado y engorroso.
¿Cómo lo quitamos? bien, vamos a indicar al motor que queremos arrancar en modo debug, que por defecto trabaja en modo ventana y esto además nos permitirá usas la utilería de depuración que para las pruebas siempre va bien.

Para ello vamos a crearnos un archivo de texto "command.ini". Dentro vamos a meter esto:

-debug -run main.pi

Si ahora le damos al "nlkengine.exe" veremos que tenemos la pantalla negra pero ya en modo ventana. Mucho más cómodo. El "command.ini" es uno de los archivos que busca primero el motor. Le sirve para saber con que parámetros opcionales queremos arrancar. Por lo que ahora nos respecta, arrancaremos en modo debug y le decimos (aunque eso ya lo sabe por defecto) que queremos ejecutar el "main.pi"

Bueno, ya tenemos esto listo para seguir trabajando en nuestro "hello world".
Volvemos al "main.pi". Esto que ejecuta el motor. Un Servicio. Los servicios son como hilos de ejecución que nos permite enganchar código y con ello crear la lógica de nuestro programa.
Cuando un servicio arranca lo primero que hace es llamar a la funcion INIT.
Ahora mismo, tal y como tenemos nuestro "main.pi", en INIT no hay nada. Vamos a meter algo de código:

class Service
{
    properties:
        font = null;

    function Init ()
    {
        font = Font_Load ("Arial", 8, 16);
    }
}

¿Qué es todo esto?! bueno. A un servicio le podemos asociar propiedades y constantes. Con properties estamos creándole propiedades (variables de módulo). En "font" guardaremos el handle de la fuente "Arial" que queremos usar, ¿Para qué? pues para escribir nuestro mensaje "Hello World!!" :)

Pero, ¿Dónde decimos que queremos dibujar esto?¿Y en que lugar de la pantalla negra esta que sale?¿Y con que color de letra? .... tranquilidad!! poco a poco :)

Seguimos ampliando nuestro "main.pi"...


class Service
{
    properties:
        font = null;

    function Init ()
    {
        font = Font_Load ("Arial", 8, 16);
    } 

    function Draw ()
    {
        Render_Print (font, 10, 10, "Hello World!", ARGB(255,255,255,0));
    }
}

Ya lo tenemos, pues vamos a darle al ejecutable a ver que pasa...
Woala!! ya tenemos un "hello world!" enhorabuena! :)







                

No hay comentarios:

Publicar un comentario