Hola, antes que nada me gustaría agradecer y felicitar por este excelente motor de juegos.
Mi consulta es la siguiente, estoy desarrollando un juego de rpg y no encuentro la forma de dibujar en una capa que este por encima del actor.
Es decir, se me imposibilita dibujar, por ejemplo, nubes o arboles por los que pueda pasar por “detras” el actor.
Cuando hago una tercera capa en TiledMap ésta no se muestra cuando ejecuto sobre el motor de pilas.
Espero que mi consulta sea clara,
Desde ya muchas gracias
Hola @exe4que
Genial que estás utilizando PIlas para hacer un video juego.
Supongo que utilizas el actor MapaTiled()? para crear al mapa de tu juego, En el docstring del actor viene lo siguiente: (puedes acceder a esta documentación e incluso el código completo poniendo “pilas.ver(pilas.actores.MapaTiled)”
Tiled trabaja con capas, así que cuando pilas carga las capas las interpreta
de la siguiente manera:
- La capa 0 define los bloques no sólidos, generalmente fondos o decoración.
- La capa 1 define bloques sólidos, útiles para hacer suelos o paredes.
- Las siguientes capas solo se almacenan, pero no se dibujan. Se pueden acceder con ``mapa.capas``.
Después de la tercerá capa sólo son almacenadas más no dibujadas, ahora mismo no tengo un mapa de ejemlplo para probar, peró pienso que puedes dibujar las capas que tienes de “más” de la siguiente manera:
bloques = mimapa._pintar_bloques(mimapa.capas[2], solidos=False)
mimapa.capas[2] = bloques
Si gustas puedes enviarnos tu código y el mapa y probamos a detalle.
Saludos.
Muchas gracias por responder!
Entiendo tu respuesta, pero, ¿eso no dibujaría las demás capas por “debajo” del actor?. Mi problema no es que no pueda graficar las capas, sino que quiero graficar partes del mapa por “encima” del actor.
Quiero que el actor pueda ser “tapado” por nubes, casas, arboles, etc.
No veo la necesidad de mandar el código del programa, pero tampoco tengo problema en compartirlo.
Gracias por el tiempo!
Añado más información:
al abrir el ejemplo de juego rpg en el interprete de pilas observé que la copa del árbol no estaba siendo graficada. Al principio pensé que era adrede, pero veo que en realidad la copa del árbol si esta definida en una tercera capa en el archivo fuente ‘mapa.tmx’.
¿Será que es que es una funcionalidad faltante en el motor?
@exe4que
Tienes razón, se debería de ver así.
Desconozco por que no fue tomado en cuenta, pero ahora que veo la forma en que fue implementado el actor mapa, impide, hasta donde ví definir el valor “z” de cada capa con respecto a los demás actores, debido a que es sólo un actor.
Por ahora podrías crear otro archivo .tmx con la tercera capa y cargarlo normalmente después de que creas tus personajes del rpg.
Trataré de investigar cómo resolverlo o quizás @hugoruscitti o @quiqueporta ya sepan de este “bug”.
Saludos
m… y si hiciéramos que el actor MapaTiled te permita darle valor “z” a cada capa ?.
Voy a hacer una prueba hoy, a ver si haciendo ese cambio puede andar… Les escribo.
Hola @hugoruscitti
Lo que pasa es que se dibuja sobre una misma superficie todas las capas del Mapa, si en las superfices hay posibilidad de dar valor “z” bastaría son indicar que cada capa se dibuje en una superficie diferente.
Ya lo solucioné, lo que hice fue generar cargar 2 mapas, uno con las capas “suelo” y “objetos” y otro mapa con la capa “cielo” que no esta relacionado con el actor personaje.
Luego simplemente ordene la impresion de los actores con la propiedad “z”.
No se que tipo de connotaciones tendra a nivel de rendimiento imprimir 2 mapas, pero por lo pronto funciona.
Muchas gracias por el soporte!
Si a alguien le interesa, luego puedo compartir el codigo…
1 Like
@exe4que Genial que lo hayas resuelto.
Debido a que son imágenes estáticas las capas no debería de repercutir tanto en rendimiento, igual y me podría equivocar si es un muy gran mapa
¡ Saludos !
@irvingprog @hugoruscitti
Hola de nuevo!,
Queria pasar a dejarles el pre-alpha release del juego que les comentaba.
Basicamente lo que tengo es un pesonaje que se mueve en 8 direcciones, salta y colisiona con el mapa; y otro que lo sigue a todas partes y que usa los mismos sprites.
Lo considero de interés porque usé una version modificada del método del pullRequest de DrDub
Para probarlo hay que descomprimir el .rar y ejecutar nuevo.py con el interprete de pilas.
Desde ya perdon por la desorganizacion del código, todavia estoy en el primer intento xD.
Gracias de nuevo y espero que sirva para contribuir a pilas.
https://github.com/exe4que/Pok-mon-Dark-Matter/releases/download/v0.1/Pokemon.Dark.Matter.v0.1.1.rar