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

0

99
Views
Detección de colisión de imágenes de JavaScript

Estoy tratando de averiguar cuándo colisionan 2 imágenes en un juego que hice, pero he estado recibiendo consejos contradictorios y no estoy exactamente seguro de cómo hacer que funcione ninguna de las soluciones (ya que todas dan como resultado errores, y la colisión resulta nula)

aquí están las dos opciones que he estado tratando de resolver (cualquier solución funciona realmente, estoy perplejo y parece que no puedo hacer que funcione independientemente de lo que intente).

 // first option function trackXY() { for (let i = 0; i < 2; i++) { let playerrr = document.getElementById('moveAva'); let pikaTest = document.getElementById('pikaLocation' + i); let playHeight = window .getComputedStyle(playerrr) .getPropertyValue('height'); let playWidth = window.getComputedStyle(playerrr).getPropertyValue('width'); let playLeft = window.getComputedStyle(playerrr).getPropertyValue('left'); let playTop = window.getComputedStyle(playerrr).getPropertyValue('top'); let pokeHeight = window .getComputedStyle(pikaTest) .getPropertyValue('height'); let pokeWidth = window.getComputedStyle(pikaTest).getPropertyValue('width'); let pokeLeft = window.getComputedStyle(pikaTest).getPropertyValue('left'); let pokeTop = window.getComputedStyle(pikaTest).getPropertyValue('top'); let xPlayer = parseInt(playLeft + 0.5 * playWidth); let yPlayer = parseInt(playTop + 0.5 * playHeight); let xEnemy = parseInt(pokeLeft + 0.5 * pokeWidth); let yEnemy = parseInt(pokeTop + 0.5 * pokeHeight); let rPlayer = 0.5 * parseInt(playHeight); let rEnemy = 0.5 * parseInt(pokeHeight); let dX = xEnemy - xPlayer; let dY = yEnemy - yPlayer; let distance = Math.sqrt(dX * dX + dY * dY); if (distance <= rEnemy + rPlayer) { alert('collison!'); playHeight = parseInt(playHeight) + 0.5 * parseInt(pokeHeight); document.getElementById('pikaInvent').style.display = 'block'; document.getElementById('pikaWon').style.display = 'block'; } } } //second option function trackXY() { for (let i = 0; i < 1; i++) { let playerrr = document.getElementById('moveAva'); let pikaTest = document.getElementById('pikaLocation' + i); let xPlayer = parseInt(playerrr.style.left + 0.5 * playerrr.style.width); let yPlayer = parseInt(playerrr.style.top + 0.5 * playerrr.style.height); let xEnemy = parseInt(pikaTest.style.left + 0.5 * pikaTest.style.width); let yEnemy = parseInt(pikaTest.style.top + 0.5 * pikaTest.style.height); let rPlayer = 0.5 * parseInt(playerrr.style.height); let rEnemy = 0.5 * parseInt(pikaTest.style.height); let dX = xEnemy - xPlayer; let dY = yEnemy - yPlayer; let distance = Math.sqrt(dX * dX + dY * dY); if (distance <= rEnemy + rPlayer) { alert('collison!' + enemy.id); } } } trackXY();

si alguien pudiera ayudar, realmente podría apreciarlo. O, si tiene otra solución para la detección de colisiones con 2 imágenes rectangulares. ¡Gracias!

almost 3 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 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