Tengo el siguiente codigo de un contador:
Evento create:
global.nTiempo = 0;
if global.nTiempo >= 10 {instance_create(100,100,Ocasa)};
Evento step:
global.nTiempo +=1;
Evento Draw:
draw_set_color(c_white);
draw_text(180,160,global.nTiempo/30);
El tema es que el contador funciona a la perfección pero la orden que le doy en el evento create no la cumple (if global.nTiempo >= 10 {instance_create(100,100,Ocasa)};) he intentado otras ordenes pero tampoco las cumple es como si la variable no se incrementase o no se.. Un saludo y espero su ayuda ;)
CREATE siempre ocurre una sola vez, antes que STEP
La variable nTiempo la aumentas en STEP, pero como CREATE ya se ejecutó (y no vuelve a ejecutarse más) no hay manera de que ese IF se ejecute. Si vas a evaluar una condición para un contador que se actualiza en STEP, la única opción es usar el mismo STEP para evaluarla (o DRAW, dependiendo del caso)
Cita de: penumbra en Diciembre 11, 2014, 11:07:42 PM
CREATE siempre ocurre una sola vez, antes que STEP
La variable nTiempo la aumentas en STEP, pero como CREATE ya se ejecutó (y no vuelve a ejecutarse más) no hay manera de que ese IF se ejecute. Si vas a evaluar una condición para un contador que se actualiza en STEP, la única opción es usar el mismo STEP para evaluarla (o DRAW, dependiendo del caso)
Tienes razón, gracias pero ahora el tema es: ¿Por que no espera a que sea mayor de 10 directamente crea la casa he probado a cambiar el valor a 10000 y pasa lo mismo
No sé, habría que ver el código que tienes en STEP, pero ojo, si usas esto en STEP (suponiendo que funcione bien)
if global.nTiempo >= 10 {instance_create(100,100,Ocasa)};
Como STEP se ejecuta constantemente, esto va a provocar que al siguiente paso, después de 10, el contador sea 11, y la condición sigue siendo verdadera, por lo que se va a crear otra casa, y al siguiente paso, otra casa, etc, etc. Tienes que poner un límite a la creación de casas (hay varias formas de hacerlo, depende de cómo se comporte tu juego, una puede ser mejor que otra)
Cita de: eldimarzioxp en Diciembre 11, 2014, 11:30:52 PM
Cita de: penumbra en Diciembre 11, 2014, 11:07:42 PM
CREATE siempre ocurre una sola vez, antes que STEP
La variable nTiempo la aumentas en STEP, pero como CREATE ya se ejecutó (y no vuelve a ejecutarse más) no hay manera de que ese IF se ejecute. Si vas a evaluar una condición para un contador que se actualiza en STEP, la única opción es usar el mismo STEP para evaluarla (o DRAW, dependiendo del caso)
Tienes razón, gracias pero ahora el tema es: ¿Por que no espera a que sea mayor de 10 directamente crea la casa he probado a cambiar el valor a 10000 y pasa lo mismo
Perdonad mi ignorancia pero yo tampoco sé el porqué se crearía el objeto casa. Se supone que el Create se ejecuta sólo una vez y al principio el valor de la variable es 0 por lo que no se crearía.
Pese a que la variable va aumentando se supone que ya no se volvería a crear la instancia de la casa, no?
Cita de: empardopo en Diciembre 12, 2014, 10:13:24 AM
Cita de: eldimarzioxp en Diciembre 11, 2014, 11:30:52 PM
Cita de: penumbra en Diciembre 11, 2014, 11:07:42 PM
CREATE siempre ocurre una sola vez, antes que STEP
La variable nTiempo la aumentas en STEP, pero como CREATE ya se ejecutó (y no vuelve a ejecutarse más) no hay manera de que ese IF se ejecute. Si vas a evaluar una condición para un contador que se actualiza en STEP, la única opción es usar el mismo STEP para evaluarla (o DRAW, dependiendo del caso)
Tienes razón, gracias pero ahora el tema es: ¿Por que no espera a que sea mayor de 10 directamente crea la casa he probado a cambiar el valor a 10000 y pasa lo mismo
Perdonad mi ignorancia pero yo tampoco sé el porqué se crearía el objeto casa. Se supone que el Create se ejecuta sólo una vez y al principio el valor de la variable es 0 por lo que no se crearía.
Pese a que la variable va aumentando se supone que ya no se volvería a crear la instancia de la casa, no?
CLaro, pero casa nunca se creaba por que no estaba en el evento STEP