- Agustín Zubiaga: Ganador del Google Code In
- Anisa SKin Care
- Tabita Skin Care
- Mengatasi Jerawat Tanpa Obat
- Carta de la Directiva de ceibaJAM! a TODOS !!
- AYUDA!!!! Necesito que me sugarizen un emulador.
- ¿Cómo sugarizar un juego editado?
- windows en xo 1.5
- Acta de la Reunión de la Directiva del 01 de noviembre de 2011
- Se encuentra disponible el Acta de la Reunión de la Directiva del 22 de octubre de 2011
Cómo modificar Conozco Uruguay (para no programadores)
A continuación se describe de qué forma se puede modificar el contenido de Conozco Uruguay para elaborar contenidos particulares, crear nuevas preguntas y nuevos niveles de juego. Esta descripción está especialmente dirigida a quienes no tienen conocimientos de programación.
Contenido:
Preliminares
Para realizar las modificaciones necesitamos entrar a la actividad Terminal y utilizar algunos comandos básicos de la consola de Linux. También utilizaremos el editor de texto nano. Asumiremos que la actividad Conozco Uruguay ya está instalada en la XO (se puede instalar desde nuestra zona de descargas).
Trabajo básico en la Terminal
Cuando se entra en la Terminal el directorio de trabajo es el directorio de usuario /home/olpc. Este directorio se abrevia con el símbolo ~. Para ver el contenido de este directorio se utiliza el comando ls (recordar: ls viene de lista). Si se escribe ls y se presiona Entrar, se muestra un listado de los archivos y subdirectorios contenidos en el directorio de trabajo. Si deseamos cambiar el directorio de trabajo, debemos utilizar el comando cd (recordar: cd viene de cambiar directorio). Por ejemplo, si queremos cambiar al directorio Activities, entramos cd Activities y presionamos Entrar. Ahora mostramos el listado de archivos en este nuevo directorio con ls y vemos un conjunto de actividades de Sugar instaladas en nuestra XO. Si queremos volver al directorio de usuario, escribimos cd ~ y presionamos Entrar.
Pique: Observar cómo en cada línea de la Terminal se nos recuerda cuál es el directorio de trabajo actual. ¿Puedes ver dónde está esa información?
La estructura de la actividad
La actividad Conozco Uruguay se instala como todas las actividades extra de Sugar dentro del directorio de usuario /home/olpc/Activities, y el nombre del directorio es ConozcoUruguay.activity. En la programación de Conozco Uruguay se separa claramente la lógica del programa de los datos. La lógica está escrita en el lenguaje Python y contenida en el archivo conozcouy.py dentro del directorio principal de la actividad. No será necesario modificar este archivo.
A partir de la versión 8, toda la información del juego (mapas, sonidos, datos) está en el directorio recursos. Cada subdirectorio de recursos corresponde a un mapa distinto, por ejemplo recursos/uruguay tiene la información del mapa de Uruguay, recursos/canelones tiene la de Canelones, etc. También hay un directorio recursos/comun con la información común a todos los mapas, por ejemplo los gráficos del marcianito, los sonidos, etc.
Los datos se encuentran en el directorio datos en una serie de archivos de texto (extensión .txt). Estos son los archivos que modificaremos. Cambiemos el directorio de trabajo al directorio de datos. Si estamos en el directorio de usuario debemos cambiar al directorio Activities, luego al directorio ConozcoUruguay.activity y luego al directorio recursos/uruguay/datos. Podemos hacer todo eso de una vez escribiendo cd Activities/ConozcoUruguay.activity/recursos/uruguay/datos. El símbolo / es un separador que permite concatenar los subdirectorios.
Pique: No hace falta escribir todo el nombre de cada subdirectorio. Cuando uno escribe las primeras letras, puede presionar el tabulador y la Terminal completará automáticamente el nombre si es que hay una sola entrada en ese directorio que empiece con esas letras. Si no puede completarla, ofrecerá una lista de todas las opciones que comienzan con esas letras y uno podrá escribir la o las letras siguiente hasta que la Terminal pueda identificar cuál es la entrada deseada.
Prueba ir al directorio de usuario, escribir A y presionar el tabulador: la Terminal completará el nombre Activities/, con la barra separadora y todo.
Utilizando el editor nano
El editor nano es un editor de archivos de texto muy sencillo que está incluido en la Terminal de la XO. Para ejecutarlo se debe escribir nano seguido del nombre de archivo que se quiere editar, y presionar Entrar. Una vez dentro del editor, se puede mover el cursor con las flechas y escribir texto. En la parte inferior de la pantalla aparece un resumen de los comandos más utilizados. El símbolo ^ quiere decir la tecla ctrl, por ejemplo el comando ^X se ingresa presionando simultáneamente las teclas Ctrl y X. De hecho, el comando ^X es el único que vamos a utilizar, ya que sirve para salir (recordar: la X viene de exit, salir en inglés). Antes de salir, preguntará si se desea salvar el archivo, a lo que se puede contestar presionando S (sí), N (no), o ^C para volver al editor (cancelar el comando salir).
Modificar las preguntas de cada nivel
Llamamos "nivel" a cada una de las opciones que aparece en el menú principal de la actividad Conozco Uruguay. Hay dos tipos de niveles: en modo "juego" y en modo "exploro". El primero consiste en preguntas, mientras que el segundo permite simplemente seleccionar elementos del mapa para ver su nombre. Los niveles del modo "juego" están enteramente definidos en el archivo niveles.txt. Editemos este archivo yendo al directorio datos y escribiendo nano niveles.txt (el usuario experto ya aprendió cómo llegar al directorio y cómo ahorrar un poco de trabajo presionando el tabulador después de escribir un par de letras como ni). Si todo va bien, Ud. estará viendo el contenido del archivo, comenzando con una línea que dice # Configuración de niveles. Lo primero que debe saber es que toda línea que comience con el símbolo # es un comentario, es decir que no es leída por el programa y que el contenido de la línea puede ser cualquier cosa. Esto resulta útil para dejar comentarios que recuerden el funcionamiento de un programa o el formato de un archivo. Entonces, las primeras líneas del archivo son una descripción resumida del contenido del mismo escritas allí por su creador (en este caso, yo) y quien quiera entenderlo y modificarlo (en este caso, Ud.).
Enriqueciendo el vocabulario del marcianito
En este archivo hay primero aspectos generales que definen la forma en que el marcianito formula las frases. Cada pregunta consta de un Prefijo seguido del contenido de la Pregunta y seguido de un Sufijo. El Prefijo y el Sufijo se eligen aleatoriamente entre un conjunto de expresiones comunes a todas las preguntas. Los mismos se definen en las líneas que comienzan con "Prefijo = " y "Sufijo = " respectivamente.
Pique: El texto está separado con el carácter "\" en los lugares donde se debe realizar un salto de línea; si no se incluye este salto de línea el texto puede salirse del espacio disponible en el juego y verse de forma incorrecta.
Entonces, si se quiere que el marcianito por ejemplo inicio una pregunta diciendo "Quiero que me muestres dónde está ...", se debe agregar una línea como ésta:
Prefijo = Quiero que me muestres\dónde está
Pruébalo. Ingresa esa línea y luego presiona ^X (es decir la tecla Ctrl en simultáneo con la X), que es el comando para salir. El editor preguntará si queremos salvar el archivo, le contestamos que sí presionando S. Al hacerlo salimos del editor y estamos de vuelta en la terminal. Si vamos a la vista Hogar y ejecutamos Conozco Uruguay, podremos verificar que en alguna pregunta (en forma aleatoria como dijimos) el marcianito efectivamente inicia una pregunta con el nuevo Prefijo ingresado. Podemos volver a la terminal y editar nuevamente el archivo con el comando nano niveles.txt.
Las formas en que podemos controlar lo que el marcianito dice es con las siguientes líneas:
- Prefijo = la parte inicial de una pregunta
- Sufijo = la parte final de una pregunta
- Correcto = lo que dice el marcianito cuando la respuesta es correcta
- Mal = lo que dice el marcianito cuando la respuesta es incorrecta
- Despedida = lo que dice el marcianito cuando se completa la nave, antes de despegar
Como dijimos antes, puede haber cualquier número de estas líneas, el programa simplemente seleccionará al azar de esta lista en cada ocasión.
Agregando preguntas y niveles
A continuación en el archivo niveles.txt encontramos los distintos niveles del juego. Cada uno de ellos consta de:
- Nombre del nivel: encerrado entre paréntesis rectos
- Listado de elementos del mapa a dibujar: comienza con "dibujoInicial =" y sigue una lista separada por comas de los siguientes elementos
- lineasDepto
- capitales
- ciudades
- rios
- cuchillas
- cerros
- Listado de elementos del mapa a etiquetar: comienza con "nombreInicial =" y sigue una lista separada por comas de los siguientes elementos
- deptos
- capitales
- ciudades
- rios
- cuchillas
- cerros
- Lista de preguntas: cada una va en una línea separada que comienza con "Pregunta =" y sigue con los siguientes elementos separados por el carácter |
- texto de la pregunta: esto es lo que aparece entre el Prefijo y el Sufijo
- un número indicando el tipo de respuesta: 1 depto, 2 ciudad, 3 rio, 4 cuchilla, 5 cerro
- la etiqueta correspondiente a la respuesta correcta
- texto de ayuda
Por ejemplo, supongamos que queremos incluir una pregunta acerca del lugar donde se declaró la independencia de nuestro país. Entonces introduciremos una línea como la siguiente:
Pregunta = la ciudad donde se\declaró la independencia|2|Florida|Es una capital departamental\que empieza con F
Nótese cómo se introdujeron saltos de línea en el texto de la pregunta y la ayuda. El tipo de respuesta es 2: ciudad y la respuesta correcta es Florida. ¿Se anima a probarlo? De esta forma podemos introducir cualquier pregunta que se desee siempre y cuando el dato correspondiente a la respuesta correcta haya sido ingresado en el archivo correspondiente (esto lo veremos en el capítulo siguiente). Si queremos agregar un nivel completo con preguntas nuevas, podemos escribir el nombre del nivel entre paréntesis rectos y a continuación la lista de dibujos, etiquetas y preguntas como ya ha sido explicado.
Por ejemplo, supongamos que queremos hacer un nivel nuevo sobre lugares históricos. Podemos escribir lo siguiente:
[Lugares históricos]
dibujoInicial = lineasDepto,capitales,ciudades
nombreInicial = deptos
Pregunta = la ciudad donde se\declaró la independencia|2|Florida|Es una capital departamental\que empieza con F
Pregunta = la ciudad donde nació\Mario Benedetti|2|Paso de los Toros|Queda sobre el\Río Negro
Pregunta = el departamento donde\se dio el Grito de Asencio|1|Soriano|Queda al oeste
etc.
Pruébalo. Verás que en el menú inicial el nivel se agrega automáticamente, al ingresar se dibujan los límites departamentales, las capitales y las ciudades, y se etiquetan los departamentos. Las preguntas aparecen en orden aleatorio entre el conjunto de preguntas ingresadas.
Exploraciones
Los niveles en modo "exploro" se definen de manera similar en el archivo exploraciones.txt, sólo que son mucho más sencillos de definir. En efecto, en cada nivel el dibujoInicial y el nombreInicial funcionan igual que como ya explicamos. El tercer elemento que completa un nivel es una lista de elementos activos que son los elementos que responden al hacerse clic sobre ellos (la forma de responder es simplemente mostrando el nombre). Esto se define con una línea que comienza con elementosActivos = y continúa con una lista de elementos separados con coma, dentro del mismo conjunto utilizado para nombreInicial. Prueba agregar un nivel con exploraciones que contenga una combinación de elementos dibujados y etiquetados distintos a los existentes.
Agregar contenido a los mapas
Para cada mapa se deben definir los archivos gráficos correspondientes y la información de las localidades y zonas dentro del mapa. Toda esta información se coloca en un subdirectorio debajo del directorio recursos. Por ejemplo, toda la información del mapa de Uruguay está en el directorio recursos/uruguay. Este directorio debe tener el siguiente contenido:
- nombre.txt: un archivo de texto con una sola línea conteniendo el texto a ser desplegado en el menú del juego para identificar este mapa
- imagenes: directorio que contiene las imágenes de los mapas
- datos: directorio que contiene los archivos de texto que definen los elementos del mapa y las preguntas de los niveles
Archivos gráficos
Los mapas son archivos gráficos de tipo png con un tamaño exacto de 786 por 900 pixeles. Estos archivos se encuentran en el directorio imagenes y tienen nombres específicos:
- fondo.png: contiene la imagen con el contorno del país, departamento o continente de interés, con un color liso.
- deptos.png: contiene cada departamento o subdivisión pintada con un color distinto; el componente rojo del color debe ser único para cada departamento y es el valor que lo identifica. Esta imagen no se muestra nunca, sólo sirve para detectar la zona correspondiente.
- deptosLineas.png: contiene el contorno de los departamentos o subdivisiones; el resto debe ser transparente.
- rios.png: contiene el dibujo de los ríos, lagos y otros cursos de agua pintados en azul; el resto debe ser transparente.
- riosDetectar.png: cada río o curso de agua está pintado con un color distinto, donde el componente rojo lo identifica de manera &uacatue;nica. En el caso de los ríos, conviene pintarlo más grueso que el trazo que se ve efectivamente en el archivo rios.png de manera que sea más fácil hacer clic sobre &eeacute;l. Esta imagen no se muestra nunca, sólo sirve para detectar la zona correspondiente.
- cuchillas.png: contiene el relieve topográfico de la zona, en general en tonos de marrón.
- cuchillasDetectar.png: al igual que riosDetectar.png cada zona de interés se pinta con un color distinto para poder identificarla.
Para generar estos archivos se recomienda utilizar el software Gimp o similar, de manera de poder trabajar con varias capas superpuestas de imágenes.
En los mapas hay dos tipos de contenidos:
- puntos
- áreas
Los puntos hacen referencia a lugares que pueden identificarse con coordenadas (X,Y) dentro del mapa, por ejemplo ciudades o lugares históricos. Las áreas por su parte hacen referencia a zonas extensas dentro de un mapa y que no pueden identificarse con un simple par de coordenadas, por ejemplo la superficie de un departamento o el recorrido de un río. A continuación se explican estos dos tipos de contenido.
Definición de elementos geográficos de tipo punto
Los puntos se definen en el archivo ciudades.txt dentro del directorio datos. En este archivo, cada punto está definido en un renglón con el siguiente formato:
Nombre|posx|posy|tipo|textoxincremento|textoyincremento
donde
- Nombre: es el nombre de la ciudad o punto geográfico
- posx: es la coordenada X del punto dentro del mapa; esta coordenada se mide en pixeles
- posy: es la coordenada Y del punto dentro del mapa; esta coordenada se mide en pixeles
- tipo: es un número que identifica el tipo de elemento; los valores que puede tomar son: 1 = capital departamental, 2 = ciudad, 5 = cerro, 6 = punto de interés
- textoxincremento: indica cuántos pixeles a la derecha se ubica el centro de la etiqueta con el nombre del lugar (puede ser un número negativo para indicar corrimiento hacia la izquierda)
- textoyincremento: indica cuántos pixeles hacia abajo se ubica el centro de la etiqueta con el nombre del lugar (puede ser un número negativo para indicar corrimiento hacia arriba)
Un conjunto de valores típicos sería:
Durazno|309|593|1|0|-12
En este caso estamos definiendo el punto llamado Durazno, ubicado en las coordenadas (X=309, Y=593), del tipo 1 = capital departamental, y con la etiqueta ubicada exactamente arriba del símbolo (desplazamiento x = 0, desplazamiento y = -12).
Definición de elementos geográficos de tipo área
Los elementos de tipo área pueden ser departamentos, ríos o cuchillas. Cada uno de estos tipos se define en un archivo distinto (departamentos.txt, rios.txt y cuchillas.txt respectivamente). La sintaxis de estos archivos es la misma, cada elemento se identifica en un renglón con el siguiente formato:
Nombre|codigo color|texto x|texto y|rotacion nombre
donde
- Nombre: es el nombre del elemento
- codigo color: es el número que identifica a esta zona y corresponde con el componente rojo del color con que fue pintada la misma en el archivo png correspondiente
- texto x: coordenada X en pixeles de la ubicación del centro de la etiqueta con el nombre
- texto y: coordenada Y en pixeles de la ubicación del centro de la etiqueta con el nombre
- rotacion nombre: ángulo de rotación de la etiqueta con el nombre en grados
