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

301
Vistas
Eliminación de una instancia específica de una función del teletipo

actualmente estoy trabajando en un juego muy simple usando Pixi.js por diversión y tengo un problema.

Necesito eliminar una instancia específica de una función del teletipo una vez que se eliminó un sprite específico del escenario.

Cuando se presiona el espacio, llamo a createBullet ()

 function createBullet(sheet, sprite) { const bullet = new PIXI.Sprite(sheet.textures["sample.png"]); bullet.x = sprite.x bullet.y = sprite.y + 10 bullet.height = bullet.height / 5 bullet.width = bullet.width / 5 app.stage.addChild(bullet); bullet.ticker.add((delta) => { moveBullet(delta, bullet) }) }

createBullet crea un nuevo sprite, lo agrega al escenario y luego agrega moveBullet() al ticker

 function moveBullet(delta, b) { // move bullet by += (-BULLETSPEED * delta) // delete bullet once out of bounds if (by < -10) { app.stage.removeChild(b); } }

Estoy buscando eliminar moveBullet() del ticker una vez que la bala se haya eliminado del escenario.

Intenté colocar un ciclo while en moveBullet() que verifica si b no es nulo y establecer b en nulo después de haberlo eliminado del escenario. y luego agregar moveBullet al ticker usando addOnce() en lugar de add(). esto no funcionó.

Sé que puedo usar ticker.remove() para eliminar una marca, pero no estoy seguro de cómo eliminar una instancia específica de la función moveBullet.

¿cómo haría para hacer esto?

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

0

Lo descubrí un par de minutos después de publicarlo, así que publicaré mi solución en caso de que ayude a alguien en el futuro.

Mi error inicial fue usar el teletipo de la aplicación. En cambio, mi función createBullet() ahora crea un nuevo ticker para cada viñeta. MoveBullet() destruye ese ticker cuando la viñeta se sale de los límites.

 function createBullet(sheet, sprite) { const bullet = new PIXI.Sprite(sheet.textures["sample.png"]); bullet.x = sprite.x bullet.y = sprite.y + 10 bullet.height = bullet.height / 5 bullet.width = bullet.width / 5 app.stage.addChild(bullet); const bullet_ticker = new PIXI.Ticker bullet_ticker.add((delta) => { moveBullet(delta, bullet, bullet_ticker) }) bullet_ticker.start() } function moveBullet(delta, b, ticker) { // move bullet by += (-BULLETSPEED * delta) // delete bullet once out of bounds and remove its ticker if (by < -10) { app.stage.removeChild(b); ticker.destroy() } }
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