bueno estoy haciendo un juego de zelda
estoy en la parte de hacer una puerta que se abre si todas las antorchas estan prendidas, (antorchas que se prenden con lampara,flechas de fuego,etc)
las antorchas se crean desde objPuerta con "creation code" con la variable numAntorchas
y mi codigo de "creation code" es:
tipo="antorcha"//para saber que la puerta la utilizare para abrirla con antorchas
numAntorchas=4
antorchas="tiempo"//para asignar a las antorchas a ser de las que se apagan en cierto tiempo
//ahora como numAntorchas=4 tengo que asignas sus posciciones
px[0]=x+40
py[0]=y
px[1]=x+80
py[1]=y
px[2]=x+120
py[2]=y
px[3]=x+160
py[3]=y
//y lo que durara cada antorcha en apagarse
time[0]=200
time[1]=100
time[2]=50
time[3]=300
mi codigo de objPuerta es en el evento Room Start:
if tipo="antorcha"{
for(i=0;i<numAntorchas;i+=1){
ww=instance_create(px[i],py[i],obj_antorcha)
if antorchas="tiempo"{
ww.tipo="tiempo";ww.prendido=0;ww.tiempo=time[i]//asignar las antorchas a ser de tiempo,estan apagadas y cuanto tiempo tendra cada antorcha para apagarse
}
}
}
todo marchaba perfectamente hasta que descubri que no puedo hacer que si todas mis antorchas creadas ya estan prendidas pues la puerta se abriria
pues si pongo :
if ww.prendido=1{(codigo de abrir)}
pues solo le hace caso a la ultima antorcha creada y ya no a todas
haber si me entendieron
espero ayuda pues ya tengo mucho tiempo queriendo crear otra demo
y poder acabar algun dia mi juego anelado de zelda
gracias...
Si entend? bien, el problema est? en tratar de chequear todas las antorchas con
if ww.prendido=1{(codigo de abrir)}
En cambio deber?as hacer eso
mark=0
for i=1;i<=instance_number(antorchas);i+=1
{
ww=instance_find(ww,i-1)
if ww.prendido=0 {mark=1}
}
Si mark es igual a 1 entonces todas las antorchas no est?n prendidas. Si es 0, todas est?n prendidas
tal vez me funcione pero no se como aplicarlo
Pues lo puedes poner en el step de la puerta asi:
mark=0
for i=1;i<=instance_number(obj_antorcha);i+=1
{
ww=instance_find(ww,i-1)
if ww.prendido=0 {mark=1}
}
if mark=0 {codigo de abrir la puerta}
Pero esto ser?a para todas las antorchas del room. La otra manera es modificar tu codigo para que indexe las antorchas creadas
if tipo="antorcha"{
for(i=0;i<numAntorchas;i+=1){
ww[i]=instance_create(px[i],py[i],obj_antorcha)
if antorchas="tiempo"{
ww[i].tipo="tiempo";ww[i].prendido=0;ww[i].tiempo=time[i]//asignar las antorchas a ser de tiempo,estan apagadas y cuanto tiempo tendra cada antorcha para apagarse
}
}
}
Luego para fijarte si est?n prendidas
for(i=0;i<numAntorchas;i+=1){
if ww[i].prendido=1{(codigo de abrir)}
}
no me funciona por que como dices el primer codigo seria para todas las antorchas del room
tan solo quiero poder preguntarle al programa:
si todas las instancias que han sido creadas contienen su variable prendido=1
entonces abrir puerta
pero gracias casi fuciona espero que se te ocurra otra cosa se ve que eres de mas nivel que yo je je
Ahi lo modifiqu?, al poner la i entre corchetes me mand? italic por el codigo html
bueno gracias a Texic por sus ideas
en el codigo que me diste:
for(i=0;i<numAntorchas;i+=1){
if ww[i].prendido=1{(codigo de abrir)}
}
el echo de preguntar por ww[i] creo que es a cualquiera por lo tanto no seria si estan prendidas todas sino una de todas
le probe con
if ww[0].prendido=1
and ww[1].prendido=1
and ww[2].prendido=1
and ww[3].prendido=1
{(codigo de abrir)}
y funciona a la perfeccion pero claro, que tal si quiero 10 antorchas
no podria alargar tanto el codigo (es por eso que existen las variables :o)
rayos ya casi lo tenia...
...como sera para que sea todas y no cualquiera con la posibilidad te tener por ejemplo 5 puertas en un Room y cada puerta con mas de 3 antorchas
cada puerta reaccionando a sus propias antorchas po supuesto....
Ups, le he errado de c?digo, para chequear si est?n prendidas es asi:
mark=0
for (i=1;i<=numAntorchas;i+=1)
{
if ww[i].prendido=0 {mark=1}
}
if mark=0 {codigo de abrir}
Asi si se encuentra una apagada, mark indica que no est?n todas prendidas (poniendose en 1), en caso conmtrario se abre la puerta
bien no funcionaba por que estaba mal acomodado el codigo pero lo arregle un poco y
?por fin funciona muchas gracias!
pronto sacare la demo haber que les parece