Hola a todos, hoy vengo con una pregunta bastante simple, pero que me hace romper la cabeza XD.
Tengo en el room, varias instancias de un objeto (llamemosle object0) ubicadas en una grid de cuadrados de 40x40. Dado que para moverse una instancia debe estar al lado de otra/s ya sea en horizontal y/o vertical (nunca en diagonal), nescesito chequear si por lo menos una de todas las instancias tienen una o mas instancias "pegadas", ya sea arriba, abajo, a la izquierda o la derecha.nunca en las diagonales.
Si se da tal condicion una variable hace que el juego siga, si ninguna cumple con tal condicion este se termina.
Trate de hacerlo con instance_place , instance_nearest y otros pero nunca logre hacer que detecte que esto pase en todas las instancias, por lo cual me echaba del juego por el simple echo de que una sola no tuviera ninguna pegada, y tambien que consideraba a las instancias que se ubicaban pegadas en diagonal (cosa que no quiero que ocurra)
Agradeceria cualquier tipo de ayuda ya sea de probar con alguna funcion u corregir x cosa.Actualmente uso la version 1.3
hola.. esto sucede por que tu condicion habla internamente local dentro de cada instancia, imagino que tu codigo esta dentro de tu object0 lo que puedes hacer es preguntarle a la maquina el numero de veces mismo que tu numero de object0...
intenta creando un objeto, yo le llamaré objControl.
ahi en el evento en el que cada vez que quieras checar pon :
for (i=0;i<instance_number(object0);i+=1){
aa[ i ]=instance_find(object0,i); // aqui guardas a cada instancia en una variable individual
if aa[ i ].solo=0{// aqui pregunta a todas si no esta solo , a si que si almenos una no lo esta continua...
}else {
//aqui es que ya no hay ni una "acompañada" por tanto pierde
}
}
.....Bueno ya dentro de tu object0 crea la variable solo=0; y en step:
if position_meeting(x,y-40,object0)
or position_meeting(x,y+40,object0)
or position_meeting(x+40,y,object0)
or position_meeting(x-40,y,object0){
solo=0}else{solo=1}