Insertar código Javascript en una página web

Existen distintos modos de incluir lenguaje Javascript en una página web. La forma más frecuente de hacerlo es utilizando la etiqueta <script type="text/javascript"> en un archivo HTML. El formato es el siguiente:

<!doctype html>

<html>

  <head>
    <title>A blank HTML page</title>
    <meta charset="utf-8" />

    <script type="text/javascript">

      // Aquí insertaremos el código Javascript. read more

Leer más » 10 Comentarios

Instalar GIT 1.7.1 en Ubuntu

Ayer tarde me disponía a instalar SparkleShare sobre mi sistema. Sobre éste os hablaré en los próximos días, pero adelantaros que se trata de una alternativa, libre y sin limitaciones, a Dropbox. Ya os hablé hace tiempo de Ubuntu One, pero este no es libre y sí que tiene limitaciones.

Bien, por un motivo que desconozco, la versión de GIT de mi máquina era inferior a la requerida por esta aplicación, en este caso, precisaba de la última versión estable de GIT, la 1.7.1. Para quién no lo sepa, GIT es un sistema de control de versiones diseñado por Linus Torvalds, al igual que otros como Subversion, Bazaar o CVS. Vaya, digamos que es en este en el que basa todo su entorno SparkleShare. read more

Leer más » 2 Comentarios

Curso ADO.NET con Mono y MySQL – Introducción

El desarrollo de software es una labor en la que intervienen tal cantidad de variables que debemos siempre conocer el mayor número de tecnologías distintas para poder dar siempre la mejor respuesta en cada caso. Muy frecuentemente, es necesario desarrollar un sistema software que sea multiplataforma, a la vez que trate con muchos datos situados en un servidor de datos ajeno. Para estos casos es idóneo utilizar el binomio Mono y MySQL.

Las facilidades que provee una tecnología multiplataforma de alto nivel como Mono, unido a la integración en el mismo de MySQL a través de un conector nativo para ADO.NET, hacen que tengamos al alcance de nuestra mano un binomio de software libre con una potencia envidiable. Siempre tenemos otras opciones también libres, como Java en el caso de tecnología de desarrollo multiplataforma; y otras bases de datos como PostgreSQL para arquitecturas cliente-servidor, o SQLite para máquinas locales, que gozan de muy buena salud. read more

Leer más » 11 Comentarios

Curso programación de videojuegos con SDL – Conclusiones. ¿Quién usa SDL?

El resultado no es en absoluto profesional, pero espero que este ejemplo os haya demostrado lo fácil (o al menos no tan difícil) que puede llegar a ser desarrollar un juego. Existen otras muchas maneras de hacerlo, pero SDL es quizás la alternativa más potente en dos dimensiones de las que existen en el universo del software libre. Recordando siempre que podemos usarla conjuntamente con OpenGL para conseguir gráficos tridimensionales.

Otras opciones además de Allegro y ClanLib de las que he hablado, son por ejemplo plataformas destinadas expresamente al desarrollo de videojuegos, como el Proyecto Fénix (el compilador alternativo al famoso DIV propietario). Sin embargo, como ya comenté anteriormente, estas opciones pueden parecer más fáciles pero son menos potentes que SDL. read more

Leer más » 4 Comentarios

Curso programación de videojuegos con SDL – Creando continuidad

Finalmente, sólo nos queda darle continuidad a nuestro juego. En función de los objetivos que nos habíamos propuesto, es que los aviones vuelvan a aparecer por la parte superior de la pantalla una vez lleguen al final. Esto es bastante simple ya que solamente tenemos que copiar y pegar la inicialización de los aviones enemigos dentro de una condición que compruebe si ha llegado ya al final de la pantalla por la parte inferior. read more

Leer más » 7 Comentarios

Curso Java – 8. Bucles

Un bucle es una sentencia que realiza varias veces un conjunto de código. Se repite tantas veces hasta que la condición asignada al bucle deje de cumplirse.

Los bucles se utilizan para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código más claro y facilita su modificación en el futuro.

For

El bucle for es la estructura de control donde se indica un número mínimo de iteraciones. Es la más popular y utilizadas en casi todos los lenguajes de programación iterativos. read more

Leer más » 5 Comentarios

Curso Java – 7. Condicionales

En programación, y por tanto en Java, una sentencia condicional es, como su nombre indica, una instrucción que se puede ejecutar o no en función del valor de dicha condición.

Con estas sentencias puedes crear aplicaciones más complejas debido al factor condicionante de la variable que se evalúa. Si sólo utilizas operadores estarás usando, prácticamente, una calculadora.

Los condicionales representan, junto con los bucles que se verá en el siguiente capítulo, la base de la programación estructurada. read more

Leer más » 9 Comentarios

Curso programación de videojuegos con SDL – Colisiones

Una vez ya tenemos los enemigos moviéndose, el doble búfer implementado e incluso si queremos la pantalla completa pasemos a establecer algún objetivo en el juego. Para este ejemplo el objetivo será evitar que nuestro avión se choque con los aviones enemigos. Una vez se choquen terminaremos el juego. Aunque esto en un juego real no pasaría dado que es un ejemplo didáctico, es la opción que tomamos. Podríamos también poner un número de vidas por ejemplo, pero esto ya alargaría demasiado el ejemplo (tened en cuenta que tendríamos entonces que escribir con letras y números en nuestra pantalla de SDL, lo que no es tan fácil). Lo que si haremos será que cada vez que desaparezcan los enemigos posicionarlos de nuevo en el comienzo para que vuelvan a aparecer.

Comprobando si existe colisión

Para comprobar si existe colisión calcularemos la distancia entre el jugador y cada uno de los enemigos. Para calcular la distancia, primero hallaremos el centro de cada uno de los enemigos y del jugador para posteriormente calcular la distancia euclidea entre ambos puntos.

Ya que las dimensiones son:

  • Jugador: 59×42
  • Enemigo: 50×40

El centro de cada uno de ellos debe estar desplazado de la posición en la que están dibujados (teniendo en cuenta que SDL dibuja desde la posición superior izquierda del objeto):

  •  Jugador: (30,21)
  • Enemigo: (25,20)

Veamos cuál es la distancia límite a la que pueden estar el jugador y un enemigo (si la distancia es menor se considerará que ha habido una colisión y por lo tanto el juego se termina):

  • Distancia crítica=(30²+21²)^(1/2)+(25²+20²)^(1/2) aproximadamente 69.

Es decir el punto en el que se tocan los extremos de las superficie enemigo con la superficie jugador. Este modo de calcular la distancia no es el más exacto, pero es bastante orientativo. Si quisiéramos calcular la distancia de manera más exacta deberíamos estudiar mejor la geometría y las dimensiones reales de nuestro dibujo (despreciando la parte con transparencia en los extremos).

La función que hace esta comprobación sería la siguiente:

int existeColision(int x, int y, int numeroEnemigos, struct posicion* posicionesEnemigos) { int i; int centroJugador[2]={x+30,y+21}; struct posicion* centroEnemigos; double distancia; centroEnemigos=(struct posicion*)malloc (sizeof(struct posicion)*numeroEnemigos); for(i=0; i < numeroEnemigos; i++) { centroEnemigos[i].x=posicionesEnemigos[i].x+25; centroEnemigos[i].y=posicionesEnemigos[i].y+20; distancia=sqrt(pow((double)centroJugador[0]- centroEnemigos[i].x,2)+pow((double)centroJugador[1]-centroEnemigos[i].y,2)); if(distancia <= 69) return 1; } return 0; } read more

Leer más » 4 Comentarios

Desinstalar aplicación de Adobe AIR

Hace unos días me instalé la aplicación GeeMail, se trata de una aplicación de escritorio multiplataforma (corre bajo Adobe Air) para controlar nuestra cuenta de Gmail.

Ya sabéis que me encantan los productos de Google, en especial el correo. Fueron los pioneros en cambiar el concepto de mail, y siguen siendo los que más avances realizan para que un sistema con tantos años no pierda su esencia principal, comunicarse. Han pasado unos días y no he notado que GeeMail me aporte nada nuevo, salvo que corre en local y parece que mola más. read more

Leer más » 2 Comentarios

Eliminar cuadro de recuperación de ficheros en OpenOffice y LibreOffice

Creo que no soy el primero que sufre el temido diálogo de recuperación de ficheros de OpenOffice y LibreOffice. Cuando el sistema sufre un problema y cerramos indebidamente la suite ofimática, los ficheros que estemos usando pueden recuperarse en un estado posterior a la última versión guardada que tenemos del mismo.

Cuando el fichero está presente no hay problema, la recuperación se efectúa y no vuelve a aparecernos el diálogo. El problema surge cuando hemos borrado el fichero, por ejemplo porque estaba en una carpeta temporal. Si nos ocurre esto empieza a repetirse todo el rato el proceso: cada vez que arrancamos la suite, aparece el diálogo y no hay forma de eliminarlo. Para solucionarlo, hacemos lo siguiente. read more

Leer más » 2 Comentarios