es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se agregan imágenes repetidas en Phaser?

En mi juego Phaser, quiero usar una textura de fondo similar a una celda que se mueve cuando te mueves.

Mi idea era agregar cada celda en un bucle for, así:

  let width=100, height=100;
  for(let y=0;y<width;y++){
    ;
    for(let x=0; x<height;x++){
      this.physics.add.image(width/2+64*x, height/2+64*y, "snow_field").setScale(4,4);
    }
  }

El problema: El juego se vuelve muy (muy) lento.

Entonces, ¿hay una forma mejor / recomendada de agregar imágenes/fondos repetidos?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma mejor y más eficiente de añadir imágenes/fondos repetitivos en un juego de Phaser. En lugar de añadir cada celda en un bucle for, puedes usar un objeto TileSprite que puede repetir una textura en un área específica. Aquí tienes un ejemplo de código:

    this.add.tileSprite(0, 0, width, height, 'snow_field').setScale(4, 4);
    

    Este código creará un objeto TileSprite con la textura ‘snow_field’, establecerá la escala en 4 y la repetirá en toda el área del juego. También puedes actualizar la posición del objeto TileSprite en el método de actualización para que se mueva junto al jugador:

    let player = this.player; // Suponiendo que tienes un objeto jugador
    
    this.tileSprite.tilePositionX = -player.x; // Mover el fondo horizontalmente con el jugador
    this.tileSprite.tilePositionY = -player.y; // Mover el fondo verticalmente con el jugador
    

    Al usar un objeto TileSprite, puedes evitar crear cientos de objetos de imagen individuales y mejorar el rendimiento de tu juego de Phaser.

Comments are closed.