Me canso ganso
// ------------------------------------------------------------------------------------------------------------------------------- // PHOTOSWIPE
var initPhotoSwipeFromDOM = function(gallerySelector) {
// parse slide data (url, title, size ...) from DOM elements // (children of gallerySelector) var parseThumbnailElements = function(el) { var thumbElements = el.childNodes, numNodes = thumbElements.length, items = [], figureEl, linkEl, size, item;
for(var i = 0; i < numNodes; i++) {
figureEl = thumbElements[i]; //
// include only element nodes if(figureEl.nodeType !== 1) { continue; }
linkEl = figureEl.children[0]; // element
size = linkEl.getAttribute('data-size').split('x');
// create slide object item = { src: linkEl.getAttribute('href'), w: parseInt(size[0], 10), h: parseInt(size[1], 10) };
if(figureEl.children.length > 1) {
//
if(linkEl.children.length > 0) {
// thumbnail element, retrieving thumbnail url
item.msrc = linkEl.children[0].getAttribute('src');
}
item.el = figureEl; // save link to element for getThumbBoundsFn items.push(item); }
return items; };
// find nearest parent element var closest = function closest(el, fn) { return el && ( fn(el) ? el : closest(el.parentNode, fn) ); };
// triggers when user clicks on thumbnail var onThumbnailsClick = function(e) { e = e || window.event; e.preventDefault ? e.preventDefault() : e.returnValue = false;
var eTarget = e.target || e.srcElement;
// find root element of slide var clickedListItem = closest(eTarget, function(el) { return (el.tagName && el.tagName.toUpperCase() === 'FIGURE'); });
if(!clickedListItem) { return; }
// find index of clicked item by looping through all child nodes // alternatively, you may define index via data- attribute var clickedGallery = clickedListItem.parentNode, childNodes = clickedListItem.parentNode.childNodes, numChildNodes = childNodes.length, nodeIndex = 0, index;
for (var i = 0; i < numChildNodes; i++) { if(childNodes[i].nodeType !== 1) { continue; } if(childNodes[i] === clickedListItem) { index = nodeIndex; break; } nodeIndex++; } if(index >= 0) { // open PhotoSwipe if valid index found openPhotoSwipe( index, clickedGallery ); } return false; };
// parse picture index and gallery index from URL (#&pid=1&gid=2) var photoswipeParseHash = function() { var hash = window.location.hash.substring(1), params = {};
if(hash.length < 5) { return params; } var vars = hash.split('&'); for (var i = 0; i < vars.length; i++) { if(!vars[i]) { continue; } var pair = vars[i].split('='); if(pair.length < 2) { continue; } params[pair[0]] = pair[1]; } if(params.gid) { params.gid = parseInt(params.gid, 10); } return params; }; var openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) { var pswpElement = document.querySelectorAll('.pswp')[0], gallery, options, items; items = parseThumbnailElements(galleryElement); // define options (if needed) options = { // define gallery index (for URL) galleryUID: galleryElement.getAttribute('data-pswp-uid'), getThumbBoundsFn: function(index) { // See Options -> getThumbBoundsFn section of documentation for more info var thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail pageYScroll = window.pageYOffset || document.documentElement.scrollTop, rect = thumbnail.getBoundingClientRect();
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width}; }
};
// PhotoSwipe opened from URL if(fromURL) { if(options.galleryPIDs) { // parse real index when custom PIDs are used // http://photoswipe.com/documentation/faq.html#custom-pid-in-url for(var j = 0; j < items.length; j++) { if(items[j].pid == index) { options.index = j; break; } } } else { // in URL indexes start from 1 options.index = parseInt(index, 10) - 1; } } else { options.index = parseInt(index, 10); } // exit if index not found if( isNaN(options.index) ) { return; } if(disableAnimation) { options.showAnimationDuration = 0; } // Pass data to PhotoSwipe and initialize it gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options); gallery.init(); }; // loop through all gallery elements and bind events var galleryElements = document.querySelectorAll( gallerySelector ); for(var i = 0, l = galleryElements.length; i < l; i++) { galleryElements[i].setAttribute('data-pswp-uid', i+1); galleryElements[i].onclick = onThumbnailsClick; } // Parse URL and open gallery if it contains #&pid=3&gid=1 var hashData = photoswipeParseHash(); if(hashData.pid && hashData.gid) { openPhotoSwipe( hashData.pid , galleryElements[ hashData.gid - 1 ], true, true ); } }; // execute above function initPhotoSwipeFromDOM('.my-gallery'); // ====================================== // FIN SCRIPTS PHOTOSWIPE // ======================================
¿Cuál es su misión? Gastarle bromas a los vecinos, robarles sus gorros, graznar sin parar. En resumen: fastidiarle el día a todo el mundo.
Esta es la carta de presentación mediante la cual se invita a la compra de Untitled Goose Game, un videojuego para computadora y Nintendo Switch lanzado el pasado 20 de septiembre y que se convirtió en el título más vendido durante octubre en la tienda europea de descargas de la consola japonesa.
En Estados Unidos, en el mismo periodo, se situó en el segundo lugar, apenas superado por Fortnite. De hecho, en sólo dos semanas desde su estreno vendieron más de 100 mil descargas y eso que no es precisamente barato: cuesta 9.99 dólares en su versión para Mac y 389.99 pesos la de Switch.
¿Y a qué se debe tal furor? A que este ganso sí es una auténtica ociosidad. No hay otra forma de explicarlo.
La mecánica del juego es tan ridículamente simple que su creadora –la compañía independiente australiana House House, integrada por apenas cuatro desarrolladores– refiere burlonamente el contenido del “paquete” a adquirir: “El juego incluye: un ganso malo (tú), un pueblo lleno de gente que solo quiere hacer sus cosas tranquilamente (les tienes mucho asco) y ¡un botón exclusivo para graznar!”.
Clasificado dentro del género “sandbox” (en el que el usuario no tiene que seguir una trama específica para avanzar), Untitled Goose Game se describe a sí mismo como un juego de comedia física en el que se debe interpretar al ave de corral que toma por sorpresa a los habitantes de una aldea desprevenida.
Este ganso debe seguir una lista de tareas, que consiste básicamente en arruinarles el día a sus vecinos, robándoles objetos, metiéndose de polizón a sus jardines, tirando sus cosas al estanque… echando desmadre como se quiera, pues.
Convertido en un extraño fenómeno viral (más extraño aun porque la gente paga por él), Untitled Goose Game llamó la atención de la revista del prestigiado Tecnológico de Massachussetts. En un artículo firmado por Tanya Basu, la MIT Technology Review trata de explicar en qué consiste el éxito del ganso. Para ello acude a Oskari Kallio y Masood Masoodian, investigadores de la Universidad Aalto de Finlandia.
In Untitled Goose Game, the goose is all of us. That's why the video game is such a hit. https://t.co/IVPPlCbJ8d
— MIT Technology Review (@techreview) October 17, 2019
Por medio de un correo electrónico, Kallio explica que el juego permite al usuario convertirse en comediante. En las películas, los programas de tele y los libros, la comedia es una experiencia pasiva, en el que otro es el que escribe los chistes para que uno se ría. Convertido en ganso, el jugador diseña y planea sus propias travesuras, como si él mismo fuera una especie de Mr. Bean, en una dinámica en la que se vale improvisar.
Con optimismo, Kallio y Masoodian pronostican que, a diferencia de los títulos basados en franquicias consagradas o aquellos en los que la dinámica se basa en disparar y matar a todo aquel que se atraviese, cada vez más videojuegos pondrán la comedia como su atractivo central, sobre todo para quienes busquen experiencias más colaborativas y menos violentas.
Pero, sobre todo, este ganso representa todo acerca de nosotros. Conmueve porque es sorprendentemente catártico, dice la revista tecnológica del MIT. Y refleja a tal grado la vida real que, asegura, un ganso malcriado suelto es una analogía demasiado perfecta para el caos de los acontecimientos mundiales.
Y es que, en su simpleza, este ganso al que le divierte provocar está lejos del prototipo del villano perturbador tan en boga hoy en día. Por el contrario, este ganso hasta resulta simpático. Como dice la reseña del portal Vox, nunca es demasiado violento o agresivo. Aunque sí es puede ser, si su controlador así lo desea, demasiado ruidoso. Quizá un poco mezquino, pero más travieso que malintencionado.
In Untitled Goose Game, the goose is all of us. That's why the video game is such a hit. https://t.co/IVPPlCbJ8d
— MIT Technology Review (@techreview) October 17, 2019
Este ganso sí tiene buena reputación en la prensa extranjera. El portal Polygon lo llama “agente del caos en un mundo de reglas y orden”, pero The Washington Post lo considera una forma segura y socialmente aceptable de aliviar el estrés, mientras que Los Angeles Times dice de plano que este ganso es el héroe rebelde que necesitamos.
What to play: 'Untitled Goose Game' gives us the rebel superhero we need — a goose https://t.co/yPsWgmeMlX
— Los Angeles Times (@latimes) September 29, 2019
The New Yorker titula su reseña: "La alegría de ser un horrible ganso en una época de crisis moral".
In Untitled Goose Game, you (the goose) terrorize villagers partly in pursuit of a goal that is revealed only in the game’s final moments, and partly just for the sheer hell of it. https://t.co/VzADflrUwI
— The New Yorker (@NewYorker) October 17, 2019
El otro rasgo enigmático (y también humorístico) de este ganso es que no tiene título. La palabra “untitled” suele usarse como una etiqueta provisional para nombrar algún proyecto en desarrollo, trátese de una película, un libro o un juego, en lo que se le designa el nombre comercial con el que será lanzado. El juego del ganso sin título sí tenía planeado tener un nombre convencional, según revelaron sus creadores el portal IGN.
De entre diversas opciones, la que estuvo más cerca de ganar fue “Some like it honk”, un juego de palabras en la que se combina la onomatopeya de un graznido con el título de la película que en español se llamó Una Eva y dos Adanes, de 1959, protagonizada por Marilyn Monroe.
We also have a poll! pic.twitter.com/2lDUTJadYZ
— Matt Kim (@LawofTD) September 27, 2019
Esa misma nota consigna que, en Japón, los distribuidores consideraron la necesidad de ponerle un subtítulo. Así que le colocaron, abajo del nombre, la leyenda: “Aquí viene el ganso travieso”. Sospecho que en México –donde no figura aún entre los más descargados– el subtítulo ideal para impulsar sus ventas sería el popularísimo “Me canso ganso”, acuñado por Tin Tan en otra película de época, El Niño Perdido, de 1947.
Se le podría además agregar la doble advertencia que suele ponerse al final de las películas. La primera: ningún ganso (o parte del pueblo) fue dañado en la elaboración de este juego. Y la segunda: cualquier parecido con cualquier otro ganso real, es mera coincidencia.
Comentarios
// Obtener todos los elementos con clase .col-md-12 var colElements = document.querySelectorAll('.col-md-12');
// Iterar sobre cada elemento colElements.forEach(function(element) { // Verificar si tiene un hijo inmediato con clase .titulo-region var tituloRegion = element.querySelector('.titulo-region');
if (tituloRegion) { // Agregar la clase .is-sticky al elemento padre element.classList.add('is-sticky'); } });
// Obtener el elemento article dentro de .fila-especial-v2 .p50 var articleElement = document.querySelector('.home .fila-especial-v2 .p50 article');
// Obtener el texto del elemento .z-foto .bajada p var bajadaText = articleElement.querySelector('.z-foto .bajada p').textContent;
// Crear un nuevo elemento para mostrar el texto obtenido var textoElement = document.createElement('p'); textoElement.textContent = bajadaText;
// Obtener el elemento .z-txt .titulo dentro del article var tituloElement = articleElement.querySelector('.z-txt .titulo');
// Insertar el nuevo elemento al final del article articleElement.appendChild(textoElement);
Cortesía de Proceso.
Dejanos un comentario: