Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

176
Vistas
¿Cómo disminuye el ancho y la altura de un rectángulo en el lienzo HTML en un cierto porcentaje basado en un número específico?

Lo siento, no sé cómo explicar esto muy bien. Estoy haciendo una lluvia de ideas para crear enemigos para juegos en JavaScript. Quiero disminuir el tamaño del enemigo cada vez que es golpeado hasta que su salud finalmente llegue a 0 y desaparezca. Para eso, necesito que el ancho y la altura del enemigo disminuyan en relación con la salud. Por ejemplo, si el enemigo tiene 200 de salud, y el ancho y la altura son 50, necesitaría que tanto el ancho como la altura disminuyan en 1 cada vez que el enemigo recibe 4 daños para que el ancho y la altura sean 0 cuando el la salud llega a 0. Sin embargo, necesito una ecuación, en la que pueda conectar variables para no tener que codificar a cada enemigo. También estoy usando instancias de una clase enemiga con parámetros para su posición x, posición y, ancho, alto y salud si eso ayuda.

 class Enemy { constructor(x,y,width, height, health) { this.x = x; this.y = y; this.width = width; this.height = height; this.baseWidth = baseWidth; this.baseHeight = baseHeight; this.health = health; } draw() { c.clearRect(0,0,canvas.width, canvas.height) c.beginPath(); c.fillStyle = 'black' c.fillRect(this.x, this.y, this.width, this.height); c.closePath(); c.fill(); } } const myEnemy = new Enemy(500, 300, 50, 50, 200)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No estoy seguro de si esto es lo que imaginó, pero aquí hay una posible solución para usted.

Básicamente, desea tomar el porcentaje de salud restante y usarlo para calcular qué porcentaje de la altura inicial de un 'enemigo debe usarse para su altura actual.

Para esto, también necesitaría almacenar la salud máxima del token, por ejemplo, en una propiedad baseHealth .

Luego, usando su campo baseHeight , podría calcularlo:

 let healthFraction = myEnemy.health / myEnemy.baseHealth; // Fraction for health, for example 0.3. let newHeight = Math.round(myEnemy.baseHeight * healthFraction); // Will then round to nearest integer, so if baseHeight = 200, then newHeight in this example would be 60. myEnemy.height = newHeight;

Podría ser necesario un mejor redondeo en el cálculo inicial, pero eso debería darte una altura de fracción basada en la salud. Puede agregar esto como un disparador de eventos, una función o donde sea. Y luego haz lo mismo para el ancho.

Cada vez que su objeto myEnemy 'sufre daño', el componente de salud se reduce, después de lo cual puede volver a calcular la altura.

about 4 years ago · Juan Pablo Isaza Denunciar
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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda