buenas... el tema es asi, tengo pensado un juego done el terreno sea al mejor estilo terraria, con bloques de 16*16, ya tengo terminado el generador del terreno y esta funcionando bien, excepto por una cosa, al llegar al ultimo bloque tendria que crear un objeto llamado "obj_grass" y no lo hace... dejo el codigo y el archvio del GM para ver si alguien me podria dar una mano
Código [Seleccionar]
//Creación de variables
global.grid_id=ds_grid_create(room_width/16,room_height/16)
ds_grid_clear(global.grid_id,0)
var array_x,total_x,total_y,xx,yy,cont,xx_prev,stone;
total_x=room_width/16
total_y=room_height/16
//Generación de datos
for(xx=0;xx<=total_x;xx+=1){ //Calcula aleatoriamente la cantidad de bloques en cada linea, y la asigna a un array
if(xx==0){
array_x[xx]=random_range(15,21)}
if(xx>0){
array_x[xx]=array_x[xx-1]+random_range(-2,3)
while(array_x[xx]>25){
array_x[xx]=array_x[xx-1]+random_range(-2,3)}}}
for(xx=0;xx<=total_x;xx+=1){ //determina si el bloque es piedra, tierra, o pasto, asignando valores 1,2, o 3 a cada celda
cont=0
for(yy=total_y;yy>=0;yy-=1){
if(cont<array_x[xx]){
if(ds_grid_get(global.grid_id,xx,yy+1)==2 or ds_grid_get(global.grid_id,xx-1,yy)==2){ // si, hay una piedra cercana, hay mas probabliddades de que sea piedra tambien
stone=choose(1,2,3,4)
if(stone==1){
ds_grid_set(global.grid_id,xx,yy,2)}
else{
ds_grid_set(global.grid_id,xx,yy,1)}
cont+=1}
else{
stone=choose(1,2,3,4,5,6,7,8) //si no hay piedra cercana, hay menos probablididades de que sea piedra
if(stone==1){
ds_grid_set(global.grid_id,xx,yy,2)}
else{
ds_grid_set(global.grid_id,xx,yy,1)}
cont+=1}}
if(cont==array_x[xx]){ //la ultima celda deberia ser pasto
ds_grid_set(global.grid_id,xx,yy,3)}}}
//Creación de objetos
for(xx=0;xx<=total_x;xx+=1){
for(yy=total_y;yy>=0;yy-=1){
if(ds_grid_get(global.grid_id,xx,yy)==1){
instance_create(xx*16,yy*16,obj_dirt)}
if(ds_grid_get(global.grid_id,xx,yy)==2){
instance_create(xx*16,yy*16,obj_stone)}
if(ds_grid_get(global.grid_id,xx,yy)==3){
instance_create(xx*16,yy*16,obj_grass)}}}