Duda phaser.io

E

Buenas, pues llevo unos cuantos días utilizando este framework y ando jodidamente atascado en algo que no se si es posible.

He empezado a utilizar Tiled para los tilemap, y si hubiese un alma caritativa que me explicase como puedo utilizar los "objetos" de Tiled en phaser.io...me explico un poco mejor a ver xD

Digamos que tienes una escena tal que asi:

me gustaría que en vez de tener que crear en phaser.io un group, poder sacar esas estrellas y hacer colisiones, overlap...que tengan gravedad...como si fuesen sprites normales y corrientes xD

Si alguno por aquí ha usado phaser.io y puede arrojar algo de luz lo agradecería xD


map = this.add.tilemap('map');
map.addTilesetImage('terrain_tileset','tiles');
map.setCollisionBetween(43,58);

layer = map.createLayer('Capa de Patrones 1');
layer.resizeWorld();


//con esto consigo mostrar las estrellas, pero no consigo interactuar con ellas. Supongo que tengo que hacer otra capa, pero nada, no lo consigo

map.createFromObjects('Capa de Objetos 1',145,'star',estrellas); 


E

Bueno, al final opté por hacerlo de otra forma...aunque sigo queriendo que mis estrellas tengan "vida propia" y puedan tratarse como sprites sin recurrir a groups...dejó aquí mi "solución"

primero añado el tileset, le añado un callback para que cuando "colisione" con la estrella de ID 145 haga lo que tenga la funcion conseguirEstrella

map.addTilesetImage('star');
map.setTileIndexCallback(145,conseguirEstrella,this);

Y luego la funcion que haga lo que tenga que hacer, en este caso lo unico que puedo tener es que desaparezca :/

function conseguirEstrella(prota,estrella){
    estrella.alpha = 0.0;

layer.dirty = true;

return false;

}

No se me ocurre nada más, mi idea principal es que las estrellas pudiesen tener un movimiento, seguiré pensando como hacerlo. Para que tengan un movimiento es necesario que tengan un body, pero al ser un tile y no un sprite, es lo que no llego a comprender...quizás tenga que hacer una función más para tratar a cada estrella con ID 145 como un sprite...o algo asi... Bueno dejo esta "solución" para el que tenga alguna vez una duda parecida xD

Dejo un gif para que veais el resultado

E

Perdón por repetirme tanto pero, ya logré lo que quería en #1 xD esta vez las estrellas si tienen vida propia y caen y pueden moverse y lo que sea.

cual era el problema? que no creaba bien los objetos en el tiled, debo dibujar el patrón con la tecla T mientras que yo dibujaba figuras en la misma capa. Una cosa rara.

Gracias Jastro por insertarme las imágenes eres un sol. Este thread me servirá para acordarme la próxima vez (que me volverá a surgir el mismo problema ya veréis xD)

estrellas = this.game.add.group();
        estrellas.enableBody = true;
        map.createFromObjects('estrella',145,'star',0,true,false,estrellas);


function conseguirEstrella(prota,estrella){

   estrella.kill();
    score +=10;;
     scoreText.text = 'SCORE: '+score;
   
}

Resultado:

PD: parecerá una tontería, pero esto me ha tenido atascado un par/tres de días, y muy jodido porque no hay info en internet xD

1

Usuarios habituales

  • Ekisu