Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

93
Views
clip de jugador a través de hitbox javascript

De acuerdo, ya hice la pregunta, pero no tuve respuestas satisfactorias, así que la pregunto de nuevo con algunos cambios.

Estoy haciendo un videojuego en javascript (sin canvas porque es una tarea y el maestro no nos lo permite). Estoy haciendo el hitbox en este momento y me encuentro con un error. del que quiero hablar es este:

Cuando cargo la página, el personaje aparece en el aire y cae debido a una función de gravedad:

 //* GRAVITY const charWeight = 50; let velocity = 1; let fall = true; setInterval(gravity, 10) function gravity() { let Y = persoId.offsetTop; velocity += acceleration / 100; persoId.style.top = +Y + velocity + "px"; collisions = true; //! DEBUGGING }

Luego, cuando toca el suelo, deja de caer debido a mi función hitbox:

 //* HITBOX let collisions = true; function coll() { if (collisions) { let persoY = persoId.offsetTop, persoX = persoId.offsetLeft, persoW = persoId.offsetWidth, persoH = persoId.offsetHeight, islandY = islandHitbox.offsetTop, islandX = islandHitbox.offsetLeft, islandW = islandHitbox.offsetWidth, islandH = islandHitbox.offsetHeight; if (persoX < islandX + islandW && persoX + persoW > islandX && persoY < islandY + islandH && persoY + persoH > islandY) { velocity = 0; } requestAnimationFrame(coll); } } coll();

Ahora, el problema es que, como puedes ver en las imágenes, el personaje atraviesa un poco el hitbox y no se detiene tan pronto como toca. Da como resultado muchos problemas para saltar y cosas así porque cree que el personaje está dentro del hitbox. Creo que esto se debe a que salta algunos píxeles cuando la función se actualiza debido al hecho de que el jugador toca el suelo a una velocidad de alrededor de 13 px/s.

Otras variables:

 let persoY = persoId.offsetTop, persoX = persoId.offsetLeft, persoW = persoId.offsetWidth, persoH = persoId.offsetHeight, islandY = islandHitbox.offsetTop, right = false, left = false, x = 9950, y = 4950, air = false, land = true, hitbox = false, islandHb = document.getElementById("islandHitbox"), map = document.getElementById("map"), persoVar = document.getElementById("persoId"), screenLog = document.querySelector('body'); const acceleration = 9.81;
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!