• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

107
Vistas
cómo hacer rebotar un rectángulo en otro rectángulo y escalarlo con velocidad

Estoy haciendo un juego y necesito una colisión con objetos que reboten, así que si golpeo la pared, rebote.
este es mi codigo

 if (xpad < rect2.x + rect2.w && xpad + rect1.w > rect2.x && ypad < rect2.y + rect2.h && rect1.h + ypad > rect2.y) { if(ypad+ 40 == rect2.y) { vert=-vert; //top of the cube } if(ypad == rect2.y + rect2.h) { vert=-vert; //bottom of cube } if(xpad + 40 == rect2.x) //40 is the width of my player and i didn't use rect1.h { horz=-horz; //left of the cube } if(rect2.x + rect2.w == xpad) { horz=-horz; //right of the cube } }

Además, el ciclo que uso para llamar a mis funciones y otras cosas ya se está ejecutando sin demora, por lo que no puedo disminuir la demora.
Los dos vars que estoy usando para la colisión son

 var rect1={ x:xpad, y:ypad, w:40, h:40 }; var rect2={ x: 150, y: 200, w:100, h:100 };

el xpad/ypad se incrementa lo que empuja el cubo o el jugador

xpad y ypad típicos = 1, esto funciona con mi colisión, pero este problema comienza cuando aumento la velocidad o xpad / ypad a 2, luego comienza a atravesar paredes y objetos, entonces, ¿cómo puedo solucionar esto o cambiar mi código para permitir diferentes velocidades? forma 1 a 3

ENLACE PARA VER/PROBAR CÓDIGO:
https://javascriptss.glitch.me/testing.html para probar
https://javascriptss.glitch.me/scriptcol.js para ver

about 3 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda