Hola de nuevo! como ya he dicho en otros temas estoy en un proyecto en el que el ?rea de juego est? dividida en celdas. Bien, estas celdas son objetos y lo que pregunto es: ?C?mo puedo hacer que al iniciase el mapa se llene con las celdas sin que se superpongan?
De momento las he puesto yo manualmente pero es incre?blemente tedioso.
Nota: Las actuales son exagonales pero no me importar?a hacerlas cuadradas que debe de ser mil veces m?s f?cil.
Lo que yo he hecho, me sirve, aunque es un poco basto (con celdas hexagonales):
[gml]
if num<mx {instance_create(x+(anchura*i)+d,y+(altura*2)+d2,area)}
if num<mx {instance_create(x+(anchura*i),y+(altura*3),area)}
if num<mx {instance_create(x+(anchura*i)+d,y+(altura*4)+d2,area)}
if num<mx {instance_create(x+(anchura*i),y+(altura*5),area)}
if num<mx {instance_create(x+(anchura*i)+d,y+(altura*6)+d2,area)}
if num<mx {instance_create(x+(anchura*i),y+(altura*7),area)}
if num<mx {instance_create(x+(anchura*i)+d,y+(altura*8)+d2,area)}
if num<mx {instance_create(x+(anchura*i),y+(altura*9),area)}
i+=1; num+=1
c=instance_number(area)
if area=mx {instance_destroy()}
[/gml]
(Hay que poner tantas filas como sea necesario hasta que se llene el mapa)
Muy facil
[gml]for (i=0;i<=room_width;i+=sprite_get_width(object0))
{
for (j=0;j<=room_height;j+=sprite_get_height(object0))
{
instance_create(i,j,object0)
}
}[/gml]
Te dejo ejemplo por si las dudas, el script se llama desde el creation code. Ahora te hago otro con celdas exagonales
EDITO: Listo el de las hexagonales, es mas comlicado, a prueba y error fueron las medidas
Ok espero aunque una pregunta: si una celda se va a quedar a mitad porque el ancho/largo de la room no da m?s de si ?Esa ultima celda que queda cortada se dibujar? quedando as? (cortada) o directamente no lo ara?
La dibuja cortada
Se agradece pero no me sirve, mis hex?gonos no son "cuadrados" como los que tu has usado en el ejemplo (32x32) as? que se solapan. De todas formas me guardar? el primer ejemplo.
Pues le cambias las medidas, es cuestion de prueba y error, sino pasame el sprite de tus hexagonos y lo acomodo
150 de largo por 130 de alto
Con las medidas solas no puedo hacerlo, necesito la sprite espec?fica para acomodarlo mejor (aparte de mi obvia discapacidad para hacer hex?gonos XD)
jaja vale vale, aqu? tienes campe?n...
Listo, puse las celdas en degradado porq sino no se notan y pareciera q se agreg? un tumulto gigante gris
?Gracias, como siempre perfecto! Te subir?a el karma pero al parecer necesito publicar m?s posts o algo antes de poder hacer eso.
En breve subir? una demo, aunque no ser? muy entretenida, creo que servir? como presentaci?n del juego.
EDITO: Al pasarlo a mi juego no funciona, se queda la pantalla en negro :(
Cambiaste object0 por el objeto q sea la celda en el script LlenarRoom??
As? es :(
Pasa editable sino y te lo arreglo q no estoy seguro de cu?l es el problema (hasta q lo vea)
?Puede tener algo que ver el tama?o de mapa? 10.095 x 10.095
No, de hecho si lo prob?s con esas medidas en el ejemplo anda perfecto
Pues no se por que pero se queda toda la pantalla en negro y no avanza. El sistema que hice funciona aunque es un poco tosco. Si consigo mejorarlo lo subir? y me comentas.
Ok, q raro q no funcione, no tiene ning?n while ni nada, es un simple for