Xogamos?
Aspectos técnicos

Aspectos técnicos e procedementos de elaboración.

O núcleo de "Xogamos?" é o arquivo xoga.swf que actúa como un intérprete dos ficheiros XML de configuración, estes documentos establecen o aspecto gráfico do xogo (interfaz gráfica) e as preguntas, mensaxes , sons,etc. O resultado é un xogo de preguntas-respostas totalmente configurable tanto no apartado gráfico como no de contidos. Ao traballar separando aspecto de contidos perséguese facilitar o traballo ao usuario, que pode ocuparse de preparar preguntas sen preocuparse do deseño ou viceversa.

Xoga.swf está programado en actionscript2 e non fai uso de compoñentes, clases ou partes de código alleas aos autores deste traballo. Para o seu funcionamento, do mesmo xeito que calquera animación flash, necesita o plugin flash player , versión 8 ou superior. A vantaxe dos ficheiros flash é a súa independencia do sistema operativo; reprodúcense en calquera medio para o que estea dispoñible o flash player.
Unha vez iniciada a páxina HTML con xoga.swf embebido como script , este busca os ficheiros de deseño e preguntas segundo a definición creada polas variable xogo e preguntas, no caso de que non aparezan definidas, xoga.swf intenta acceder a xogo.xml e preguntas.xml (arquivos por defecto).
Unha vez leidos os documentos XML iníciase o proceso de carga das imaxes, durante este tempo móstrase unha animación para indicar que a descarga non se completou.

En caso de atopar erros xoga.swf mostra mensaxes sobre o tipo de erro.

Se o xogo foi creado para dous xogadores, aparecen cadros de texto para completar cos nomes a fin de diferenciar a preguntas.

Os elementos comúns a todos os xogos , se o autor do deseño así o estableceu, son:
Cronómetro: indica o tempo transcorrido. Pode ser mediante números ou por efectos sobre unha imaxe.
Marcador: reflicte o total de preguntas e o número de respostas correctas.
Logo: imaxe con fins diversos.
Fondo: imaxe de fondo.
Marco: imaxe sobre a que aparecen as preguntas.
Taboleiro: espazo de xogo.Aínda que esta definición non é correcta.
Botóns: axuda, son ou iniciar pregunta.
Pezas de xogo.

Para dar paso ás preguntas pódese premer o botón de preguntas ou a tecla 5 (número)

As mensaxes, sons, movemento de pezas, etc son determinados polos autores do xogo.

Xunto ás preguntas, na esquina superior esquerda aparecen dous botóns ( se o autor das preguntas así o determina ) para repetir o son da pregunta e acceder a máis información ( enlace web ou local ).

xoga.swf permite utilizar vídeos en formato flv, sons mp3 , imaxes png,jpg e gif(non se recomenda) e animacións swf.

Para crear os arquivos XML pode utilizarse un editor de textos ( coidado coa codificación: utf-8) , ou usar dúas ferramentas complementarias: edipre e dex.

Edipre é un editor de preguntas para elaborar ficheiros xml para xoga.swf. Está programado en object pascal e preséntase en versións para windows e linux-gtk ( o código tamén pode ser compilado para mac, pero non foi posible por non dispor do equipo ). Para o seu desenvolvemento utilizáronse delphi (PE) e lazarus-freepascal (GNU).
Todo o código é orixinal fóra das unidades XMLParser e TarLib , pero as súas licenzas permiten o seu uso , distribución e modificación sen limitacións.

Ademais de xerar XML para xoga.swf , edipre permite exportar en formatos HTML , javascript e LIM , no futuro pode incrementarse esta posibilidade con formatos como pdf , odt , etc. Para o aspecto visual das páxinas HTML utiliza follas de estilo ( inclúese unha de exemplo ).

O funcionamento é moi simple e intuitivo por medio de menús e iconas. (Ver o apartado dedicado a edipre)

Dex é un script flash que pode utilizarse embebido nunha páxina HTML (windows-linux) ou mediante o shell dex.exe ( só en windows ). O seu uso é o deseño da interfaz gráfica dos xogos para xoga.swf, en canto á súa utilización ver o apartado dedicado a dex.
Dex utiliza unha variable de contorna (modo_exe) para saber en que modo se está executando: con dex.exe, con comunicación cun servidor, con javascript ou co flashplayer (standalone).
Modos:
Con dex.exe , é tansparente para o usuario e utilízase como un executable windows. É imprescindible que dex.swf estea no mesmo directorio que dex.exe.

Standalone, transparente para o usuario. Atención: a distribución de standalone flash debe ser autorizada por adobe ( aínda que é gratuíta ) por iso non se achega con este traballo.

Javascript (modo_exe=2) , só como modo experimental e non é recomendado. Dex envía eventos que deben ser procesados por funcións javascript.
Exemplo:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" WIDTH="100%" HEIGHT="100%" ide="dex" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="dex.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="dex.swf" flashvars="modo_exe=2" quality="high" bgcolor="#ffffff" WIDTH="100%" HEIGHT="100%" name="dex" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

Con servidor, moi potente xa que permite a comunicación con scripts de servidor para realizar tarefas. Esta forma de uso é a máis complexa e por iso descríbese con máis extensión.
Cando se desexa utilizar dex.swf nun servidor é necesario dar valor ás variables modo_exe,
scriptservidor e scriptfile.
-------------------------------------------------------------
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" WIDTH="100%" HEIGHT="100%" ide="dex" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="dex.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="dex.swf" flashvars="modo_exe=1&scriptservidor=leimx.php&scriptfile=control.php" quality="high" bgcolor="#ffffff" WIDTH="100%" HEIGHT="100%" name="dex" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>
-----------------------------------------------------
modo_exe=1 ( indica a dex que se execute en modo remoto)
scriptservidor: debe conter o nome dun script ( en calquera linguaxe de servidor) que achegue información a dex. Cando o usuario abre un arquivo XML ou unha imaxe, dex solicita a este script o nome dos ficheiros que pode ver o usuario e llos mostra para que seleccione.

O usuario preme no botón de abrir imaxe ou XML ----------> dex envía unha petición ao script (scriptservidor) -------------> o script xera un XML utf-8 e envíao a dex -------------> dex abre a fiestra para seleccionar arquivo.

Todo o proceso é transparente para o usuario.

O script pode ser tan complexo como se desexe pero o seu resultado debe ser un XML utf-8 cos nomes dos arquivos accesibles. Achégase un exemplo deste script en php.
Exemplo de arquivo XML creado polo script:
<?xml version="1.0" encoding="UTF-8"?>
<imax>
<imaxe mini = "./imax/tabol.png" >./imax/tabol.png</imaxe>
<imaxe mini = "./imax/tabol2.png" >./imax/tabol2.png</imaxe>
<imaxe mini = "./imax/tabol3.png" >./imax/tabol3.png</imaxe>
</imax>
Scriptfile: os seus obxectivos son gardar o arquivo XML e xerar un arquivo tar comprimido con todos os elementos necesarios para o xogo. Dex só envía mediante o método post tres variables: nome do arquivo, XML en utf-8 e lista de ficheiros para empaquetar.
Se se desexa a descarga inmediata, gardar de forma permanente ou enlazar cunha base de datos é tan fácil como modificar o script para que realice esas tarefas. Inclúese un exemplo en php .
Para xerar o arquivo TAR ( no exemplo ) utilízase a librería tar.class.php, escrita por Josh Barger e con licenza GNU-LGPL.

Os autores deste traballo posúen todos os dereitos para a súa elaboración, distribución e a cesión de dereitos a terceiros.

Requisitos:
xoga.swf e dex.swf precisan un navegador co plugin flash versión 8 ou superior, isto inclúe windows, linux e mac.

Edipre é un executable con versións para windows e linux. ( código fonte dispoñible para mac).