{"id":12314,"date":"2024-11-25T19:02:38","date_gmt":"2024-11-25T17:02:38","guid":{"rendered":"https:\/\/loca-ski.com\/carrera-virtual-de-esqui\/"},"modified":"2025-01-28T13:04:01","modified_gmt":"2025-01-28T11:04:01","slug":"carrera-virtual-de-esqui","status":"publish","type":"page","link":"https:\/\/loca-ski.com\/es\/carrera-virtual-de-esqui\/","title":{"rendered":"Carrera virtual de esqu\u00ed"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12314\" class=\"elementor elementor-12314 elementor-11299\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e2ccc5d e-flex e-con-boxed e-con e-parent\" data-id=\"e2ccc5d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4f529b7 elementor-widget elementor-widget-heading\" data-id=\"4f529b7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Bienvenido a la Carrera de Esqu\u00ed<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c94d8b3 elementor-widget elementor-widget-heading\" data-id=\"c94d8b3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00bfC\u00f3mo juego?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-27d872d elementor-widget elementor-widget-text-editor\" data-id=\"27d872d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div id=\"instructions\">\n<ul>\n<li>Desliza a izquierda o derecha para mover al esquiador.<\/li>\n<li>Evita los obst\u00e1culos para acumular puntos.<\/li>\n<li>El juego termina si chocas con un obst\u00e1culo.<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5c22ba8 e-flex e-con-boxed e-con e-parent\" data-id=\"5c22ba8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6f21074 elementor-widget elementor-widget-html\" data-id=\"6f21074\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"ski-game-container\" style=\"position: relative; width: 100%; max-width: 600px; height: 500px; margin: auto; border: 2px solid #ccc; background-color: #eef; overflow: hidden; touch-action: none;\">\n  <img decoding=\"async\" id=\"player\" src=\"https:\/\/loca-ski.com\/wp-content\/uploads\/skieur.webp\" alt=\"Esquiador\" style=\"position: absolute; bottom: 50px; left: 50%; width: 50px; height: auto; transform: translateX(-50%);\">\n  <div id=\"score\" style=\"position: absolute; top: 10px; left: 10px; font-size: 20px; font-weight: bold; color: #333;\">Puntuaci\u00f3n: 0<\/div>\n  <div id=\"game-over-screen\" style=\"display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); color: white; text-align: center; padding-top: 200px;\">\n    <h1>Se acab\u00f3 el juego<\/h1>\n    <p id=\"final-score\" style=\"font-size: 24px; margin-bottom: 20px;\"><\/p>\n    <button id=\"replay-button\" style=\"padding: 10px 20px; font-size: 18px; margin: 10px;\">Reproducir<\/button>\n    <button id=\"share-button\" style=\"padding: 10px 20px; font-size: 18px; margin: 10px;\">Compartir puntuaci\u00f3n<\/button>\n  <\/div>\n<\/div>\n\n<script>\n  const gameContainer = document.getElementById('ski-game-container');\n  const player = document.getElementById('player');\n  const scoreDisplay = document.getElementById('score');\n  const gameOverScreen = document.getElementById('game-over-screen');\n  const finalScoreDisplay = document.getElementById('final-score');\n  const replayButton = document.getElementById('replay-button');\n  const shareButton = document.getElementById('share-button');\n\n  let score = 0;\n  let playerPosition = gameContainer.offsetWidth \/ 2;\n  let isGameRunning = true;\n\n  const createObstacle = () => {\n    const obstacle = document.createElement('div');\n    obstacle.classList.add('obstacle');\n    obstacle.style.position = 'absolute';\n    obstacle.style.top = '0';\n    obstacle.style.left = Math.random() * (gameContainer.offsetWidth - 30) + 'px';\n    \n    \/\/ Randomize the shape\n    const shapes = ['circle', 'triangle', 'square'];\n    const selectedShape = shapes[Math.floor(Math.random() * shapes.length)];\n\n    if (selectedShape === 'circle') {\n      obstacle.style.width = obstacle.style.height = Math.random() * 50 + 20 + 'px';\n      obstacle.style.borderRadius = '50%';\n    } else if (selectedShape === 'triangle') {\n      obstacle.style.width = '0';\n      obstacle.style.height = '0';\n      const size = Math.random() * 50 + 20;\n      obstacle.style.borderLeft = `${size \/ 2}px solid transparent`;\n      obstacle.style.borderRight = `${size \/ 2}px solid transparent`;\n      obstacle.style.borderBottom = `${size}px solid #` + Math.floor(Math.random() * 16777215).toString(16);\n      obstacle.style.backgroundColor = 'transparent';\n    } else {\n      obstacle.style.width = Math.random() * 50 + 20 + 'px';\n      obstacle.style.height = Math.random() * 50 + 20 + 'px';\n    }\n\n    obstacle.style.backgroundColor = '#' + Math.floor(Math.random() * 16777215).toString(16);\n    gameContainer.appendChild(obstacle);\n    moveObstacle(obstacle);\n  };\n\n  const moveObstacle = (obstacle) => {\n    let obstaclePosition = 0;\n    const obstacleSpeed = Math.random() * 2 + 3;\n\n    const interval = setInterval(() => {\n      obstaclePosition += obstacleSpeed;\n      obstacle.style.top = obstaclePosition + 'px';\n\n      if (obstaclePosition > gameContainer.offsetHeight) {\n        clearInterval(interval);\n        obstacle.remove();\n        score++;\n        scoreDisplay.textContent = `Score: ${score}`;\n      }\n\n      const playerRect = player.getBoundingClientRect();\n      const obstacleRect = obstacle.getBoundingClientRect();\n\n      if (\n        playerRect.left <obstacleRect.right && playerRect.right> obstacleRect.left &&\n        playerRect.top <obstacleRect.bottom && playerRect.bottom> obstacleRect.top\n      ) {\n        endGame();\n        clearInterval(interval);\n      }\n    }, 20);\n  };\n\n  const movePlayer = (event) => {\n    if (!isGameRunning) return;\n\n    if (event.key === 'ArrowLeft') {\n      playerPosition -= 20;\n      if (playerPosition <0) playerPosition = 0; } else if (event.key === 'ArrowRight') { playerPosition += 20; if (playerPosition> gameContainer.offsetWidth - player.offsetWidth) {\n        playerPosition = gameContainer.offsetWidth - player.offsetWidth;\n      }\n    }\n\n    player.style.left = playerPosition + 'px';\n  };\n\n  const movePlayerTouch = (event) => {\n    if (!isGameRunning) return;\n\n    const touch = event.touches[0];\n    const touchX = touch.clientX - gameContainer.offsetLeft;\n\n    if (touchX > 0 && touchX <gameContainer.offsetWidth) { player.style.left = `${touchX - player.offsetWidth \/ 2}px`; } }; const endGame = () => {\n    isGameRunning = false;\n    document.querySelectorAll('.obstacle').forEach(ob => ob.remove());\n    finalScoreDisplay.textContent = `Votre score final : ${score}`;\n    gameOverScreen.style.display = 'block';\n  };\n\n  const restartGame = () => {\n    score = 0;\n    scoreDisplay.textContent = 'Score: 0';\n    isGameRunning = true;\n    gameOverScreen.style.display = 'none';\n  };\n\n  const shareScore = () => {\n    const shareText = `J'ai obtenu un score de ${score} dans ce super jeu de ski ! Essaye de me battre !`;\n    if (navigator.share) {\n      navigator.share({\n        title: 'Mon score au jeu de ski',\n        text: shareText,\n        url: window.location.href\n      });\n    } else {\n      alert('Partage non support\u00e9 sur ce navigateur.');\n    }\n  };\n\n  replayButton.addEventListener('click', restartGame);\n  shareButton.addEventListener('click', shareScore);\n\n  document.addEventListener('keydown', movePlayer);\n  gameContainer.addEventListener('touchmove', movePlayerTouch);\n\n  setInterval(() => {\n    if (isGameRunning) createObstacle();\n  }, 1000);\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Bienvenido a la Carrera de Esqu\u00ed \u00bfC\u00f3mo juego? Desliza a izquierda o derecha para mover al esquiador. Evita los obst\u00e1culos para acumular puntos. El juego termina si chocas con un obst\u00e1culo. Puntuaci\u00f3n: 0 Se acab\u00f3 el juego Reproducir Compartir puntuaci\u00f3n<\/p>\n","protected":false},"author":1,"featured_media":11445,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"slim_seo":{"title":"Carrera virtual de esqu\u00ed - Loca-ski La Pierre Saint Martin","description":"Bienvenido a la Carrera de Esqu\u00ed \u00bfC\u00f3mo juego? Desliza a izquierda o derecha para mover al esquiador. Evita los obst\u00e1culos para acumular puntos. El juego termina"},"footnotes":""},"class_list":["post-12314","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/loca-ski.com\/es\/wp-json\/wp\/v2\/pages\/12314","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/loca-ski.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/loca-ski.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/loca-ski.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/loca-ski.com\/es\/wp-json\/wp\/v2\/comments?post=12314"}],"version-history":[{"count":0,"href":"https:\/\/loca-ski.com\/es\/wp-json\/wp\/v2\/pages\/12314\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/loca-ski.com\/es\/wp-json\/wp\/v2\/media\/11445"}],"wp:attachment":[{"href":"https:\/\/loca-ski.com\/es\/wp-json\/wp\/v2\/media?parent=12314"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}