Ayuda, he estado usando este sitio web llamado "codepen" para hacer algo de codificación javascript. Pero accidentalmente hice que me enviara infinitas indicaciones cada vez que abro el proyecto. Ahora no puedo acceder al código. Busqué durante algún tiempo una respuesta, pero no encontré ninguna. aquí hay un enlace al problema: https://codepen.io/Aibel-Roy/pen/zYPBeEW
//I can't post the code because of the infinite prompts. Sorry.Aquí está su código:
//config var tick = 50; var fieldOfView = 25; var Speed = 0.25; var ZMulti = 4; var ClearOnDraw = true; // variables var keymap = []; var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var meshA = [ "0,0,0", "1,0,0", "1,1,0", "0,1,0", "0,0,1", "1,0,1", "0,1,1", "1,1,1" ]; var textures = [ "http://www.textures4photoshop.com/tex/thumbs/red-sofa-leather-seamless-texture-53.jpg" ]; var cameraData = [0, 0, 0]; //keymap window.addEventListener( "keydown", (event) => { var name = event.key; keymap.push(name); }, false ); window.addEventListener( "keyup", (event) => { var name = event.key; if (keymap.includes(name)) { keymap.splice(keymap.indexOf(name), 1); } }, false ); //render img function draw() { if (ClearOnDraw) { ctx.clearRect(0, 0, 10000, 1000); } var img = new Image(); // texturing img.src = textures[0]; prompt(img.src); img.onLoad = function () { var pattern = context.createPattern(imageObj, "repeat"); ctx.fillStyle = pattern; var prevVert; for (let i = 0; i <= meshA.length; i++) { //convert 3D vector to 2D var vert = meshA[i]; if (i >= meshA.length) { vert = meshA[0]; } var vertPos = vert.split(","); var zMag = (vertPos[2] - cameraData[2]) * (fieldOfView / ZMulti); var vertPos2D = [ (vertPos[0] - cameraData[0]) * fieldOfView + zMag, (vertPos[1] - cameraData[1]) * fieldOfView + zMag ]; ctx.beginPath(); ctx.moveTo(vertPos2D[0], vertPos2D[1]); for (let i1 = 0; i1 < meshA.length; i1++) { var prv = meshA[i1].split(","); var PrevzMag = (prv[2] - cameraData[2]) * (fieldOfView / ZMulti); var I1VertPos = [ (prv[0] - cameraData[0]) * fieldOfView + PrevzMag, (prv[1] - cameraData[1]) * fieldOfView + PrevzMag ]; ctx.lineTo(I1VertPos[0], I1VertPos[1]); ctx.stroke(); } ctx.closePath(); ctx.fill(); prevVert = vertPos2D; } }; } function Movement() { if (keymap.includes("w")) { cameraData[2] -= Speed * 2; } if (keymap.includes("s")) { cameraData[2] += Speed * 2; } if (keymap.includes("d")) { cameraData[0] -= Speed; } if (keymap.includes("a")) { cameraData[0] += Speed; } } draw(); setInterval(function main() { draw(); Movement(); }, tick); Cómo deshabilitar el prompt (si el navegador no le sugiere que lo suprima):
En esa página, abra las herramientas de desarrollo ( Comando + Opción + I o F12 en Windows).
Elija la página correcta en la herramienta de desarrollo, generalmente se parece a CodePen (Hash ID)
Anule la función de prompt en la consola escribiendo window.prompt = () => {} .
Cambie su código, guarde y actualice la página.
Probablemente haya mejores formas de hacerlo, pero deshabilitar JavaScript hace que la sección de código quede inutilizable.
En su function draw() , hay un aviso aquí:
function draw() { // Trimmed prompt(img.src); // Trimmed } También tiene setInterval llamando a draw() en un intervalo particular definido en tick (donde ha asignado 50ms como valor):
setInterval(function main() { draw(); Movement(); }, tick); Como resultado, se llama a draw() cada 50 ms, donde se llama a prompt(img.src) , lo que lleva a un indicador infinito.
Debe cambiar lo que esté haciendo en setInterval() .