Eventos..en mi minijuego

Started by Goku jr, January 11, 2016, 12:12:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Goku jr

Buenas de nuevo!
a ver si me podeis hechar una mano  :P
Resulta que estoi intentado hacer un minijuego que cada vez que se cumplan unas condiciones suceda un evento distinto,como por ejemplo aparezcan otros tipos de enemigos,que cambie el fondo de pantalla etc..
y no doy con la solucion, y seguro que es facil,pero no soy capaz :-\


por ejemplo:
tengo un proceso que es el nivel1,tal como esto :



process nivel1();
begin
put_screen(gfx,1);
from num=0 to 2;
enemigo(x,y);
end
loop
frame;
end
end



Pues bien,quiero que cuando se llegue a ciertos puntos por ejemplo 200 puntos,me salgan otros enemigos y cambien el fondo.
lo he intentado con SWITCH,con WHILE..etc,pero no lo consigo.
tal como asi




process nivel1();
begin
put_screen(gfx,1);
from num=0 to 2;
enemigo(x,y);
end
SWITCH (PUNTOS)
   case 200 :
   clear_screen();
   put_screen(gfx,2);
   from num2=0 to 2;
   enemigo2(x,y);
    end
end
loop
frame;
end
end



Pero no consigo nada..una ayudita me vendria bien,mil gracias :D

Drumpi

#1
Supongo que el switch te lanzará una marea de enemigos infinita... o al menos, hasta que subas los puntos :D
Mi recomendación es que sigas usando el switch, pero necesitas una variable que podríamos llamar "puntos_anteriores", que sólo se actualiza después del switch. Y ya sólo te queda meter el switch en un if que diga "if (puntos != puntos_anteriores)".
Ejemplo:

process nivel1()
private
int puntos_anteriores;
begin
put_screen(gfx,1);
from num=0 to 2;
enemigo(x,y);
end

loop
if (puntos_anteriores != puntos)
SWITCH (PUNTOS)
   case 200 :
   clear_screen();
   put_screen(gfx,2);
   from num2=0 to 2;
   enemigo2(x,y);
    end
end

puntos_anteriores = puntos;
end //if

frame;
end
end


El problema es que los puntos no pasen por los valores exactos que has marcado (o sea, que tengas 195 puntos y puedas sumar 5 o 10 puntos según el enemigo eliminado. En ese caso, necesitas una variable que indique que al superarse se aumente un nivel de dificultad (otra variable), y que uses esa variable de dificultad en el switch cada vez que cambie.[/code]
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Goku jr

Muchas gracias drumpi,luego lo probaré.
Ha de ir verdad,el codigo que he puesto en mi post,no es el que tengo,este me lo he inventado al vuelo.realmente cuando en mi juego ponia switch no pasaba nada,lo ignoraba,los procesos que pongo desde el inicio perfecto,pero los switch,whiles y tal.. Se los pasaba por el forro xd

Gracias de nuevo
Saludos


Drumpi

Me he dado cuenta cuando he escrito mi código: te habías dejado el switch fuera del loop, y sólo te lo comprobaba una vez.
Con Unity vale, pero ESTO ES DIIIV!!! (patada y mandamos al mensajero al fondo del hoyo) haUUUUHHH!!!! :D :D :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)