# Pong
> [!noteinfo]
> 20.02.2026 · #code #videogames #es-lang #AI-generated
Pong fue el primer videojuego que entró en nuestra casa, entre finales de los años setenta y comienzos de los ochenta. Creo que aún lo conservo, guardado en una caja en algún rincón. Se conectaba directamente al televisor por el cable de antena y dudo que hoy pudiera dialogar con una pantalla 4K.
Pero ya no importa: han pasado más de cuarenta años y ahora habita en otro lugar, integrado en mi sitio web, suspendido en el tiempo como una pieza de museo, reprogramado a mi medida por la inteligencia artificial.
---
Pulsa `Play` para empezar. `Nuevo juego` reinicia el marcador.
Controles: `W/S` (izquierda), `ArrowUp/ArrowDown` (derecha), `Touch` (toca donde quieres colocar cada paleta), `Espacio` (pausa), `F` (fullscreen), `Esc` (salir fullscreen), botón `⛶` (fullscreen táctil).
En móvil: toca en la mitad izquierda/derecha para colocar cada paleta y usa `⛶` para pantalla completa.
<div id="pong-host"></div>
<div id="pong-controls">
<label for="pong-speed">Velocidad: <span id="pong-speed-value">1.0x</span></label>
<input id="pong-speed" type="range" min="0.5" max="2.0" step="0.1" value="1.0">
</div>
<script type="module" src="{{ '/assets/js/pong-page.js' | relative_url }}"></script>
## Incrustación estándar (cualquier web)
```html
<div id="pong-host"></div>
<script src="https://marconoris.com/assets/js/pong-embed.js"></script>
<script>
const game = LibellusPong.createPong("#pong-host", {
width: 640,
height: 360,
newGameLabel: "Nuevo juego"
});
game.setSpeed(1.2); // opcional
</script>
```
## Incrustación fullscreen (100% viewport)
```html
<div id="pong-host" style="position:fixed; inset:0;"></div>
<script src="https://marconoris.com/assets/js/pong-embed.js"></script>
<script>
document.documentElement.style.overflow = "hidden";
document.body.style.margin = "0";
document.body.style.overflow = "hidden";
let game;
function mount() {
if (game) game.destroy();
game = LibellusPong.createPong("#pong-host", {
width: window.innerWidth,
height: window.innerHeight,
newGameLabel: "Nuevo juego"
});
}
mount();
window.addEventListener("resize", mount);
</script>
```