re:ayuda para un juego de lucha

Started by Hola, September 29, 2013, 08:21:35 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Hola

hola como estan, estoy haciendo un juego de lucha y tengo una duda, estaba utilizando el metodo del platafor no se si se acordaran de div, y mi duda era si usando los pri_cuad y ult cuad, por ejemplo para caminar o otra cosa, se puede saltear de la posicion a eso sin tener k esperar a k termine la posicion, ya saben


ejemplo:


process luchador...
private
pri_cuad;
ult_cuad;
begin
for(graph=pri_cuad; graph<=ult cuad; graph=graph+1);


pri_cuad=1; ult_cuad=20; incx=0; //posicion
if(key(_v));
pri_cuad=21; ult_cuad=27; incx=10; frame(200);
end
x+=incx;
frame;
end
end
end


////ese fue un ejemplo, la cosa es k kualkier cosa k haga con pri_cuad y ult cuad, mas adelantado k la posicion, antes de hacerla aparecen los graficos de la posicion y despues lo hace o sea hay k esperar a k termine la posicion primero, no hay una manera usando eso(pri_cuad y ult_cuad) de saltearlo mas rapido?

Drumpi

No entiendo la pregunta.
¿Quieres decir que cuando está haciendo la primera animación, tras pulsar el boton V, tienes que esperar a que finalice la primera antes de que empiece la segunda?, porque para eso, la solución es que, al pulsar V, hagas que GRAPH valga el primer frame de la nueva animación, es decir, 21. Recuerda que hay que inicializar todas las variables cuando cambias de estado.

Si preguntas otra cosa, necesitas explicarte mejor. Entre otras cosas porque si citas un código de DIV, hace ya más de 10 años que nadie lo toca, así que, salvo que haya una biblioteca de código con patas, dudo que nadie se acuerde (¿por qué siento varios pares de ojos apuntando en mi dirección?).
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)

Hola

exactamente, como el primer ejemplo k diste, pasa k aunque aprete v hay que a k esperar a k termine la poscion, y si le pongo a graph=21 como decis vos, solo me repite el grafico, o sea el 21, es decir, creo k parece k si usas eso pri_cuad.. y definis un grafico como el 21, ya te repite, y no se como solucionarlo, bueno hay veces k apretas v cuando termina la posicion y ahi si te lo hace bien, pero en definitiva es eso k hay k esperar los 1ros graficos k terminen, sino te hace esos primeros lento y despues pasa a la accion, si, es como el 1er ejemplo k diste pero no se como solucionarlo me puedes dar un ejemplo asi lo arreglo?

Drumpi

Ah, claro, es que has puesto "if (key(_V))", así es normal que se te repita, porque a cada frame empieza de nuevo la animación. Debes comprobar que estás haciendo la pulsación en ese momento, es decir, que tienes que comprobar, mediante una varibale, cómo estaba la tecla en el frame anterior. Es un código muy básico y está en todos los tutoriales.

De todas formas, esto tiene el problema de que cada vez que pulses el botón V, hará la animación, independientemente de lo que estuviera haciendo, y puedes golpear de nuevo en medio de la animación del golpe. Por ello, es recomendable que te crees primero un esquema de "cambios de estados".
Básicamente es que dibujes en un papel un círculo por cada estado que tenga el personaje (en espera, andando, golpeando, saltando...), y una flecha que indique a qué estados puede cambiar cada uno de ellos, y bajo qué condiciones. Así, en el código, necesitarás una estructura switch con un CASE para cada estado (o tener en cuenta el estado del personaje en cada IF), y dentro de él comprobar si se puede cambiar de estado o si tiene que hacer la animación completa antes de volver al estado "en espera" de forma automática.
Ten cuidado porque hay cambios de estado que pueden venir de fuera, como "recibir un golpe", que puede afectar o no a tu personaje, dependiendo de si has añadido algún tipo de regla estilo "patada gana a puñetazo", de si está defendiendo o si es invulnerable por algún tipo de item o lo que sea.

Te recomiendo que mires un poco todo esto, el tema de pulsar teclas y los cambios de estado. Si puedes, échale un vistazo también al código de ejemplo de DIV de juego de lucha, no recuerdo su nombre ^^U
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)

laghengar

Lo secundo, dale por ahí amigo. Ánimo.
!!!Blender Blender Blender yuhuuuuuuu¡¡¡ novato o_O