Mostrando artículos con idioma: (Español).

Imagen de admin

Logo de la web

He aquí, un diseño inicial del logo de la web.
Imagen de admin

XML de las misiones

Ya decidido el método a seguir, propongo como ejemplo el siguiente XML y detallo a continuación su estructura:
<missions>
	<mission>
		<id>
			<!-- Identificador numérico único para cada misión -->
			<value><!-- Valor --></value>
		</id>
		<title>
			<!-- Título de la misión o nombre -->
			<value><!-- Valor --></value>
		</title>
		<description>
			<!-- Descripción de la misión -->
			<value><!-- Valor --></value>
		</description>
		<start_time>
			<!-- Fecha y hora inicial de la misión, si se omite, será el actual o el establecido en FlightGear -->
Imagen de admin

Nuevo planteamiento para el motor de las misiones

Dado el buen funcionamiento y potencia de Nasal, se me ocurre lo siguiente: En lugar de hacer un motor externo con PHP que deberá enlazarse vía Internet con FlightGear (con la evidente perdida de rendimiento en el juego), será mejor hacerlo con Nasal ya que de todas formas, se tendrá que instalar un paquete *.nas con funciones y demás. Desde Nasal, por lo tanto, se hará el motor que leerá un XML con los datos de las misiones. En el juego, se mostrará un listado de las mismas, se escogerá una y se cargará, también por medio de XML. Así que los pasos serán:
Imagen de admin

Primer contacto: mostrado de coordenadas en consola y pantalla

Visto Nasal, tengo que decir que me gusta y creo que valdrá para la finalidad de este proyecto. En un fichero de texto plano llamado test.nas y guardado en la carpeta Nasal de FlightGear, he creado el siguiente código nasal para mostrar en la consola y por pantalla, las coordenadas actuales. Modificarlo para crear un fichero temporal no cuesta nada y así, puede usarse para ir leyendo y saber dónde está el aparato en cada momento o mejor aún, modificar para que la función, simplemente retorne las coordenadas cuando el motor lo precise y él se encargará de pasar los valores a las funciones apropiadas para lanzar los eventos en los momentos oportunos. Sea como sea, aquí va el código por partes...
Imagen de admin

Detectar coordenadas con NASAL

Con la función geodinfo() de NASAL, se puede saber por dónde anda el avión/aparato volador. Este pequeño script lo demuestra.
var lat = getprop("/position/latitude-deg");
var lon = getprop("/position/longitude-deg");
var info = geodinfo(lat, lon);
 
if (info != nil) {
    print("the terrain under the aircraft is at elevation ", info[0], " m");
    if (info[1] != nil)
        print("and it is ", info[1].solid ? "solid ground" : "covered by water");
}
Esto, mostrará el siguiente mensaje:  
Imagen de admin

Scripting con NASAL

Aunque las pruebas que he realizado, han sido siempre a través del protocolo props directamente (usando C tal como se vio en un anterior post en esta web), me doy cuenta de que lo mejor será usar NASAL. http://wiki.flightgear.org/index.php/Writing_simple_scripts_in_"nasal" http://www.plausible.org/nasal/flightgear.html http://wiki.flightgear.org/index.php/Nasal_scripting_language
Imagen de admin

Control

Es primordial tener un buen control sobre el aparato que se quiere dominar, más aún cuando se trata de simulación real. Os presento dos aparatos a tener en cuenta, uno muy económico pero que ofrece todo lo necesario y otro más caro pero mucho más espectacular.

Hablo para el primer caso del Saitek X52 & Pro Flight Bundle. Se trata de una palanca por un lado, un colector por otro y como no, los pedales. Con ellos tenemos control sobre todos los ejes de movimiento de los aparatos:

Imagen de admin

Primer intento en C para seguimiento de coordenadas

Bueno, voy a poner aquí el programa que hice (como prueba) para "conectar" con flightgear y hacer así un seguimiento de éste posteriormente (en esta misma web, aún sin terminar). Flightgear nos deja un puerto abierto para telnet si se arranca de esta forma:
fgfs --httpd=5400 --props=5401
Así que la base de este proyecto, es ésa, la "posible" comunicación con el simulador, ya que por fortuna, es de código libre y muy abierto, gracias equipo de flightgear! Y paso a detallar sus parámetros:
Imagen de admin

Sistema de coordenadas

Esto me puede valer para montar los puntos de rutas, las coordenadas, de cada misión: http://www.documentados.com/?q=blog/oskar/drupal-y-google-maps-como-geop... Básicamente se trata de indicar latitud y longitud para un nodo que después puede ser representado en un mapa de google maps.
Imagen de admin

Instalar Flightgear en Ubuntu 8.10 (probablemente en todas las versiones)

Afortunadamente, flightgear, está en los repositorios oficiales de Ubuntu, por lo que instalarlo es tan sencillo como pulsar ALT+F2 (o abrir una consola/terminal) y escribir:
sudo aptitude install flightgear
Distribuir contenido