Reciclando un viejo móvil Android en una consola portátil.

Hace unos meses cambié mi viejo móvil Huawei por un BQ, y desde el cambio el Huawei estaba metido en un cajón criando polvo (literalmente, no veas lo que me llevó limpiar la pantalla). En estos tiempos pre-Navidad andan todos los buenos jugones clásicos locos con la SNES mini, como lo anduvieron hace un año con la NES, así que me han entrado la ganas de jugar un poco. Llevaba unos días mirando proyectos de portátiles construidas sobre una Raspberry Pi Zero, y la cosa pintaba bien como proyecto factible.

Sword of Xolan

Pero la Raspberry y las piezas tienen un precio, no muy caro pero este mes ya he tenido muchos gastos (empieza la NBA y hubo que pagar el League Pass, jubilar ropa vieja, mi padre cumple años este mes y el que viene los cumple mi abuela, Eric Gales toca la semana que viene por aquí, el veterinario para el gato… pequeñas cosas de la vida que van sumando) así que pensé que el móvil podría tener una segunda vida. Le pegué un limpiado de pantalla, lo dejé cargando un rato, lo encendí y le desinstalé todas las aplicaciones viejas que tenía y que no necesitaba para esto.

Ya sabéis que soy un fan de los juegos de antaño, ya hablamos de alternativas para jugar en tu navegador o de emuladores en otro tiempo, así que decidí aplicármelo al móvil.

Clásicos Sega

Lo primero que hice fue irme al Play Store a la sección de Sega y descargarme 8 clasicazos que tienen allí disponibles de gratis para el jugador pureta como yo: Sonic, Comix Zone, Space Harrier II, Golden Axe, Phantasy Star II, The Revenge of Shinobi, Altered Beast y Kid Chameleon.

Altered Beast

Pero aunque estos clásicos de la SEGA me encanten para ranciear en el fondo soy un nintendero, mi consola es la SNES. Así que el siguiente paso fue descargarme el Super Retro 16 del Play Store. Como la legalidad de la descarga de ROMS de consolas antiguas es un tema sometido a debate no voy a comentaros que os paséis por LoveRoms, por ejemplo, para buscar los juegos clásicos de dicha consola, ya que podríais incurrir en algún delito. En todo caso hay algunos juegos propios pensados para jugarse en el emulador, como el Thor’s Quest al que podéis acceder desde la tienda de la aplicación y que no es sino una copia del mítico Donkey Kong.

Thor's Quest

Para remata la cosa me agregué algún juego más por fuera del emulador, como La Abadía de los Muertos o el Sword of Xolan, para dar variedad.

¿Qué echo en falta? Pues básicamente que los controles en pantalla son un coñazo. Están bastante bien adaptados, ahí chapeau por los desarrolladores, pero la sensibilidad… en fin, yo no me adapto sin sentir el botón. Así que para el mes igual pruebo con uno de esos mandos con bluetooth y soporte, y termino la conversión del teléfono en consola. Lo bueno de todo esto: que realmente no necesitas ningún conocimiento técnico para hacerlo, y de esta forma alargas la vida de un dispositivo en desuso y te das el capricho de hacerte con una consola sin dejarte una pasta.

Dragon Ball

Anuncios

Stranger Things: The Game

Dentro de cosa de dos semanas se estrena la seguna temporada de Stranger Things, serie de la que ya expuse conspirativas teorías por aquí. Para ir abriendo boca y que el hype no decaiga Netflix ha decidido sacar un juego de estética retro basado en la serie.

Con gráficos estilo 16 bits y un planteamiento multipersonaje el juego, al igual que la serie, pretende transportar al seguidor treintañero a su infancia. Puede descargarse gratuitamente para Android o iOS.

Aquí os dejo un gameplay por si queréis profundizar más antes de probarlo:

Acceder a los atributos data de HTML5 desde jQuery

En el pasado alguna vez utilizamos los atributos rel o class para incluir valores extra que usar luego en javascript. No era una buena práctica, pero a veces era la solución más práctica. HTML5 acabó con esto introduciendo los atributos data, que nos permiten vincular información extra a un elemento del DOM. Veamos un ejemplo:

<div id='fruta' data-fruta='fresa'></div>

En el div con Id “fruta” vamos a guardar un dato: que es una fresa (ok, ya se que el ejemplo no parece tener mucho sentido práctico). ¿Cómo accedo a este valor desde jQuery? Pues con el método data() puedo tanto definirlo como obtenerlo, pasándole como parámetro el nombre del dato.

window.alert($("#fruta").data("fruta"));

El ejemplo de arriba haría un alert mostrándonos el valor. Fíjate que cuando le paso el nombre del atributo lo hago quitándole el prefijo data-. Y hay otra peculiaridad: si el nombre tiene varios guiones entonces estos desaparecen y escribimos el atributo siguiendo la convención camelCase. Un ejemplo:

<div id='fruta' data-fruta-oferta='pera'></div>
<script type="javascript">
window.alert($("#fruta").data("frutaOferta"));
</script>

En próximas entradas veremos cómo escribir los atributos y cómo acceder a ellos desde Javascript sin usar jQuery.

Tratando los objetos jQuery como arrays.

Cuando con jQuery ejecutamos un selector sobre un elemento del DOM el resultado es un objeto de jQuery. Sin embargo, la librería hace que podamos trabajar con estos elementos como si de un array se tratara, dado que define índices y una longitud.

//recogemos en una variable todos
//los elementos de la clase link
var elementos = $(".link");

// ahora podemos recorrer la colección
for(var i=0;i<elementos.length;i++){
    console.log(elementos[i]);
}

La propiedad length nos permite de esta forma saber si la colección contiene algún elemento. Si es 0 está vacío, y si es mayor el resultado es la cantidad de elementos que contiene.

if(elementos.length){
    //si hay elementos hace lo pongamos aquí
}

Si bien jQuery nos da la función $.each() para recorrer una colección de elementos, hacerlo de esta forma con un for o un while es mucho más rápido.

Conocer el “peso” de tu página con jQuery

Vamos con una corta entrada rápida sobre jQuery ¿quieres saber cuántos elementos DOM hay en tu página? Con una simple línea con jQuery podemos mandar la cuenta a la consola del navegador, tal que así:

console.log( $('*').length );

Conocer el número de elementos puede ser útil si estás buscando la causa de una ralentización en la carga de una página.

Cambiar el src de una imagen con javascript o jQuery

Vamos con una entrada rápida de Javascript ¿Cómo cambio el src de una imagen de forma dinámica? No es lo más recomendable para una web por temas de posicionamiento, pero puede ser una solución útil para una aplicación web de uso interno.

Vamos a suponer que tenemos una imagen llamada image1.jpg y que al clickar en un elemento esta cambia por otra que se llama image2.jpg:

<img src="image1.jpg" id="img1" alt="primeraImagen" />

<script>
//así con JS normal
//accediendo directamente a src
function cambiarImagenJS(){
  document.getElementById("img1").src="image2.jpg";
}

//así con jQuery
//haciendo uso de la función attr()
function cambiarImagenjQ(){
  $("#img1").attr("src","image2.jpg");
}
</script>

La idea sería vincular la función a un evento (un click, el cambio de estado de un checkbox o radio, llenar un campo de texto…) y cambiar el valor. En el ejemplo damos por fijo el id del elemento, en la práctica seguramente sería mejor pasárselo a la función. En ese caso ya miráis que se adapta mejor a vuestras necesidades.