NUEVO!! consulta

Started by AlimentoZ, May 02, 2015, 04:13:05 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

AlimentoZ

antes que todo hola...
hace mas de un mes que estoy metido en este bonito lenguaje, pero ya tengo algunas dudas....

tengo un proceso que tiene una imagen 1
lo que necesito es que la imagen cuando aparece en el programa, despues de x segundos desaparesca
que quiero decir con desaparezca, matar el proceso y poner otra imagen en su lugar ( esta parte esta ok y funcionando)

la que no logro hacer o entender:
- es como poner tiempo a un proceso y que pasado un x segundo se ejecute una instruccion
en pocas palabras. algo asi

tiempo_proceso1= ??  //



tiempo_max=300 (milisegundos)

if (tiempo_proceso1==tiempo_max)
kill process y llamo a otra imagen en su lugar   // esto esta ok se entiende
end

ojo que tengo varios procesos para hacer lo mismo


saludos y gracias


SOLUCION

AL FINAL TOME EL CONSEJO y realice algo asi

y el tiempo del zombie en este caso, esta dado por los fps,
el zombie tiene 300 fps, algo asi como 5 segundos en tiempo
                              if (tiempo_zombie == max_zombie)
say("muere zombie 1"); //matas el proceso
// mato zombie imagen1 y mato imagen2
signal(type imagen2,S_KILL);
img2=61; x=448; y=192;
imagen2();
img1=61;
graph=img1; x=320; y=192;
imagen1();
tiempo_zombie=0;

else
tiempo_zombie++;

end

gracias a todos por sus respuestas y lecturas del tema...
pronto tendre noticia de lo que estoy haciendo...





warrior_rockk

Si te da igual que los segundos no sean reales puedes usar un contador:



if (tiempoProceso >= tiempoMax)
      //matas el proceso
else
    tiempoProceso++;
end;



Ahora bien, ese tiempo ni son segundos ni son milisegundos. Es el numero de frames por segundos a los que corre tu juego, es decir, si el juego corre a 60fps, cada segundo el contador valdrá 60 unidades más.


Si necesitas que sea más exacto con el tiempo, puedes usar los timers.


Por cierto, no entendí muy bien que es lo que quieres hacer, pero , supongo que sabes que puedes cambiar el gráfico de un proceso sin tener que matarlo y llamar a otro ¿no?


Un saludo!


Kel

Seria más costoso usar un timer que una variable?


pregunto desde la ignorancia. Gracias.

warrior_rockk

No, sólo tienes que tener en cuenta que los timers están continuamente contando con lo que tendrás que inicializarlo a 0 antes de tu comprobación, o bien guardarte en una variable el valor previo a la cuenta y luego comparar el valor actual menos el previo para ver la diferencia de tiempo.

AlimentoZ

GRACIAS POR LAS RESPUESTAS

primero que todo...

necesito matarlo por que ya no me sirve el proceso y lo reemplazo por otra imagen
la cual no hace nada solo se reemplaza

todo esto es aplicado a:
es un programa que a una imagen A, si a la imagen A tiene collision con el mouse , hace algo
si la misma imagen no tiene collision con el mouse, osea no hace nada, en una cantidad de tiempo o de contaro
esa imagen que es un proceso la mato, por que ya no me sirve, y la cambio por otra imagen la cual no hace nada

por eso necesito que el proceso al no tener collision en un cierto tiempo se mate y se aplique otra imagen,,,

lo probé con el timer, pero ese valor es continuo y no me sirve... ya que la imagen tiende a cambiar y a continuar por todo el programa

gracias por las respuestas, ,voy a probar lo que me han dicho, si funciona mando la respuesta por aca

AlimentoZ

Quote from: Comandante on May 02, 2015, 03:01:40 PM
Aún así yo no andaría matando procesos,lo haría con estados...

switch(estado);
   
     case 0:
              graph=imagen1;
              tiempo++;
              if(tiempo==tiempo_maximo)
                 tiempo=0;
                 estado=1;
              end
              ////AQUI PUEDE COLISIONAR CON EL RATON ETC
    end
    case 1:
        graph=imagen2;
        //Al estar en otro estado ya no interactúa con el ratón
    end
end

SI es muy buena idea y forma,,, pero para este caso si la imagen no interactua con el mouse (collision), no me sirve y estaria de mas en el juego
ademas  es una base fundamental para el programa (juego) ya que es la jugabilidad para perder ... es como se inicia la forma de perder dentro del juego


Futu-block

consejo:
·1º progama
·2º optimiza (osea, preocupate por los costes)

AlimentoZ

agregue la solución...saludos