Crear un sistema de puntuación de usuarios para juegos con Flash y PHP
Una de las cosas que no puede faltar en cualquier juego que se precie consiste en mantener un top 10 de las mayores puntuaciones obtenidas por los usuarios. En el siguiente tutorial aprenderás a integrar tu animación en flash con un fichero de texto plano donde almacenar la información a través de un script programado en PHP. Si lo deseas podrás modificar muy fácilmente el script para almacenar la información en cualquier base de datos.
El script PHP que maneja toda la información se llama scores.php y recibe varios parámetros:
- filename: Este es el nombre del fichero (incluyendo la ruta) donde se almacenará la información de las puntuaciones del juego. Por ejemplo si tienes un juego llamado “tetris”, podrás guardar la información en un fichero llamado tetris.dat por ejemplo. Puedes utilizar diferentes nombres de ficheros para cada diferente juego que programes.
- scoresize: Es el número máximo de puntuaciones que mantendrás en la lista. En este tutorial usaremos 10 por defecto.
- action: El parámetro action es muy importante. Puede tener varios valores: INSERT, CLEAR o VIEW. Cuando se establece a VIEW, el script PHP simplemente lee el fichero con las puntuaciones y nos las devuelve. Cuando el parámerto action tiene el valor CLEAR, todas las entradas del fichero son reseteadas, mientras que si el valor de este parámetro es INSERT, se añadirá al fichero de puntuaciones la nueva puntuación, siempre y cuando entre en el ranking.
- viewtype: Este parámetro solo puede tener 2 valores: “HTML” o “FLASH”. Cuando se establece a HTML, el script duelve el ranking formateado en HTML, mientras que si toma el valor FLASH, el script devuelve la información para que sea interpretada por FLASH, y por tanto devuelve los valores para que sean asignados a las variables de Flash.
Si por ejemplo llámamos al script con los parámetros action = VIEW y viewtype = FLASH:
http://dominio.com/scores.php?filename=score.sco&scoresize=10&action=VIEW&viewtype=FLASH
éste nos devolverá una cadena que podrá ser interpretada por FLASH para asignar los valores a las variables correspondientes.
NAME0=none&SCORE0=0&NAME1=none&SCORE1=0&NAME2=none&SCORE2=0….NAME9=none&SCORE9=0&
Ahora que tenemos el script preparado, sólamente nos faltará integrar la llamada al script desde Flash. Para recuperar la información de las puntuaciones en primer lugar tendremos que crear los campos de texto necesarios con nombres NAME0,NAME1,…,NAME9 y SCORE0,SCORE1,…,SCORE9 donde guardaremos la información recuperada del fichero. La llamada en actionscript para recuperar el ranking es la siguiente:
on (press){ gotoAndStop("Ranking Score", 1); cargarRanking(); /*Funcion que nos permite cargar los datos del Ranking en pantalla*/ function cargarRanking(){ scoretable.filename = "demo.sco"; scoretable.scoresize = 10; scoretable.action = "VIEW"; scoretable.viewtype = "FLASH"; scoretable.loadVariables("http://tudominio.com/scores.php", "GET"); } } |
Para realizar una insercción en el ranking el código será el siguiente:
on (press){ insertarPuntuacion(_root.name, _root.score); /*Funcion que nos permite cargar los datos del Ranking en pantalla*/ function insertarPuntuacion(_nombre, _puntuacion){ scoretable.filename = "demo.sco"; scoretable.scoresize = 10; scoretable.action = "INSERT"; scoretable.viewtype = "FLASH"; scoretable.winname = _nombre; scoretable.winscore = _puntuacion; scoretable.loadVariables("http:/tudominio.com/scores.php", "GET"); } } |
_root.name y _root.score serán 2 campos de texto de donde recuperar el nombre y la puntuación del jugador a insertar en el ranking.
En el siguiente enlace podrás estudiar el código PHP y ejecutar la animación:
Download Manual.fla