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

133
Vistas
El enemigo no sigue al jugador. Phaser3

¿Puedes decirme dónde cometí un error en el código? ¿Por qué mi enemigo no sigue al jugador? No estoy seguro si definí el followPlayer() correcto. 'SceneB' es la segunda escena, ¿puede ser este problema? Console.log está claro. Estoy usando la biblioteca EasyStar.js. El juego funciona, todo funciona, pero el enemigo está congelado.
Gracias

 class SceneB extends Phaser.Scene { constructor(){ super('SceneB') } //.. create(){ finder = new EasyStar.js() let grid = [] let tile for(let y = 0; y < map.height; y++) { let col = [] for(let x = 0; x < map.width; x++) { tile = map.getTileAt( x, y ) col.push( tile.index) } grid.push(col) } finder.setGrid(grid) let tileset = map.tilesets[0] let properties = tileset.tileProperties let acceptableTiles = [] for (let i = tileset.firsgid - 1;i < tiles.total;i++) { if(properties[i].collides == false ) { acceptableTiles.push ( i+1) } } finder.setAcceptableTiles( acceptableTiles) } update(){} followPlayer(player,evil) { let toX = this.player.x let toY = this.player.y let fromX = this.evil.x let fromY = this.evil.y finder.findPath(fromX, fromY, toX, toY, function(path) { console.log(path) this.moveCharacter(path) }) finder.calculate() } moveCharacter(path){ let mytimeline = this.scene.tweens.createTimeLine() for(let i = 0;i < path.length - 1;i++) { let ex = path[i + 1].x let ey = path[e + 1].y mytimeline.add({ targets: this.player, x:{value: ex * map.tileWidth, duration: 200}, y:{value: ey * map.tileHeight, duration: 200} }) } mytimeline.play() }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

followPlayer nunca recibe una llamada, por lo que la lógica nunca se activará.

Querrá llamar a esto en algún lugar de su código, dependiendo de cómo haya implementado la lógica de su player .

También puede verificar dentro de finder.findPath esa path !== null , y hacer algo si es así, ya que eso también podría causar un problema.

 finder.findPath(fromX, fromY, toX, toY, function(path) { console.log(path); if (path !== null) { this.moveCharacter(path); } });
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