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

215
Vistas
Phaser 3 - Mover gameObject al hacer clic con el mouse (movimiento "hacer clic para mover") usando la interpolación

Entonces, estoy creando un juego con Phaser 3 que necesitará un movimiento de "clic para mover", pero no puedo usar la física, así que quiero cambiarlo y usar una interpolación para que el jugador se mueva a la posición en la que se hizo clic (" haga clic para mover"). Este era el código que estaba usando que usaba física:

 var target = new Phaser.Math.Vector2(); preload(){ this.load.image("image", "assets/image.png"); } create(){ player = this.physics.add.sprite(400, 350, "image"); this.input.on('pointerup', function (pointer) { target.x = pointer.x; target.y = pointer.y; // Move at 200 px/s: this.physics.moveToObject(player, target, 200); }, this); } update(){ var distance = Phaser.Math.Distance.Between(player.x, player.y, target.x, target.y); if (player.body.speed > 0) { // 4 is our distance tolerance. The faster it moves, the more tolerance is required. if (distance < 4) { player.body.reset(target.x, target.y); player.anims.stop(); } } }

Intenté hacerlo (usando tween), y funciona pero no como esperaba, los resultados son muy diferentes del primer código que usó física, se mueve mucho más rápido y el objeto (jugador) sigue teletransportándose a la x y original del tween. y. Esto es lo que probé:

 var tween; var target = new Phaser.Math.Vector2(); preload(){ this.load.image("image", "assets/image.png"); } create(){ player = this.add.sprite(400, 300, "image"); tween = this.tweens.add({ targets: player, x: 400, y: 300, ease: 'Power1', duration: -1, paused: true }); this.input.on('pointerdown', function (pointer) { target.x = pointer.x target.y = pointer.y tween.play(); }); } update(){ if (tween.isPlaying()) { tween.updateTo('x', target.x, true); tween.updateTo('y', target.y, true); } }
about 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda