Enero 03, 2011, 07:18:01 PM Ultima modificación: Enero 03, 2011, 08:57:45 PM por byel
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)

#1 Enero 03, 2011, 09:06:53 PM Ultima modificación: Enero 03, 2011, 09:18:40 PM por Texic
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?


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





#7 Enero 05, 2011, 05:32:23 PM Ultima modificación: Enero 10, 2011, 02:58:40 AM por Texic
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




#10 Enero 08, 2011, 12:37:44 AM Ultima modificación: Enero 08, 2011, 12:43:34 AM por byel
?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??





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