• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

122
Views
Mi código p5.js a veces se retrasa y no sé cómo.

Soy un principiante en p5.js y estaba tratando de hacer un juego de captura, donde las bolas caen del cielo y las atrapas con una canasta, pero cuando ejecutas el código, a veces las bolas no caen hasta esperar. unos segundos y moviendo la canasta, ¿alguien podría decirme por qué es esto?

Aquí está mi código:

 let speed = 3; let x = 300; let y = 0; let score = 0; function setup() { createCanvas(600, 400); } function draw() { background(0); ellipse(x, y, 20, 20); y = y + speed; rect(mouseX, height - 10, 60, 40); fill(255); text("score = " + score, 30, 20); if (y > height - 10 && x > mouseX - 20 && x < mouseX + 20) { y = -20; speed += 1; score += 1; } if (y == -20) { x = random(width); } } function reset(){ score = 0; speed = 2; y = -20; }
about 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tu lógica de juego parece un poco extraña:

Cada cuadro aumenta y por velocidad. Cada cuadro que verifica si el valor y ha pasado la posición de la paleta ( height - 10 ) y está dentro del área de la paleta (aunque las matemáticas para esto están un poco fuera de lugar). Sin embargo, no tienes ninguna condición para cuando la pelota se ha ido por el borde de la pantalla y no ha tocado la raqueta. Como resultado, nada sucede una vez que la pelota sale de la pantalla hasta que el jugador mueve la paleta a una posición en la que habría atrapado la pelota.

Aquí hay una versión fija:

 let speed = 2; let x = 300; let y = 0; let score = 0; let coolDown = 0; function setup() { createCanvas(windowWidth, windowHeight); x = width / 2; } function draw() { if (coolDown > 0) { background('red'); } else { background(0); ellipse(x, y, 20, 20); y = y + speed; } rect(mouseX - 20, height - 10, 40, 10); fill(255); text("score = " + score, 30, 20); // After the player misses give them a second if (coolDown > 0) { coolDown--; return; } if (y > height - 10 && x > mouseX - 20 && x < mouseX + 20) { y = -20; speed += 0.5; score += 1; } else if (y > height) { // The ball is off screen coolDown = 30; y = -20; score -= 1; } if (y == -20) { x = random(width); } } function reset() { score = 0; speed = 2; y = -20; }
 html, body { margin: 0; padding: 0; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>

Otra cosa a tener en cuenta es que si mueve el mouse fuera de la ventana o iframe, entonces p5.js no actualizará las mouseX y mouseY . Para evitar que esto suceda, puede considerar el uso de requestPointerLock .

about 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error