Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Soviet on January 07, 2014, 03:41:30 AM

Title: cuelgue al usar dos teclas a la vez
Post by: Soviet on January 07, 2014, 03:41:30 AM
Hola a todos
la verdad es que estoy haciendo un rpg, y la verdad es que me ha salido todo bien hasta el momento en que he tenido que dotar de movimiento al personaje, hice una animacion pora 8 dircciones en las que se moveria el personaje como de 20 frames por animacion y otras 20 para representar al personaje respirando cuando esta de pie
el problema es que cuando me quiero mover en direccion diagonal y presiono la tecla arriba y derecha al mismo tiempo, el programa se cuelga...
dejare el ejemplo del codigo para q me entiendan mejor

process personaje(x,y)
int stand_E;//variable que hace que el personaje se oriente de pie mirando hacia el este
begin
loop
if(stand_E==1 and not key(_right) and not key(_up) and not key(_down) and not key(_left))
from graph=1 to 20; frame; end
end
if (key(_right) and not key(_up) and not key(_down)and not key(_left))
x=x+10;
if (graph<=169 or graph>=189) graph=169; end;
graph=graph+1;
frame(200);
stand_E=1; stand_N=0; stand_S=0; stand_O=0; stand_NE=0; stand_NO=0; stand_SE=0; stand_SO=0;
end
end
end


bueno, eso es lo que sucede presiono dos teclas al mismo tiempo y el programa se cuelga para siempre, si alguien me pudiese hechar una mano le estaria mas que agradecido
Title: Re:cuelgue al usar dos teclas a la vez
Post by: Yawin on January 07, 2014, 08:39:39 AM
A ese código le falta el comando frame en un sitio. Si stand!=1 y no pulsas ninguna tecla, no hay frame puesto.
Title: Re:cuelgue al usar dos teclas a la vez
Post by: Soviet on January 08, 2014, 12:43:18 AM
eso ya lo he cambiado, Yawin, sin embargo se efectua el mismo problema, a mi entender es porque al presionar dos teclas a la vez hago correr dos instancias de animacion para un mismo proceso. por otra parte, estas incurren a una animacion de respirar, lo cual significa q si corres en una direccion -suroeste por ejemplo- el personaje se quede mirando hacia el suroeste junto a una animacion para que no se vea estatico, es por eso las variables stand, ademas me he reventado la cabeza en crear un sistema eficiente, que me permita usar combinacion de teclas para lograr que el personaje se mueva en diagonal sin colgar el juego...
Title: Re:cuelgue al usar dos teclas a la vez
Post by: Drumpi on January 10, 2014, 09:07:17 PM
El mejor sistema que conozco es que... observa el teclado numérico. Crea una variable "direccion" e inicializala a 5, que está en el centro del teclado numérico.
Haz que si se pulsa izquierda, se reste 1, y si se pulsa derecha se sume 1. Eso hará que "dirección" valga 4 (que está a la izquierda del teclado numérico) o 6 (que está a la derecha); si se pulsan ambos volverá a valer 5, se contrarresta una dirección con otra.
Haz que si se pulsa arriba se sume 3, y si se pulsa abajo se reste 3. Eso hará que "dirección" valga 8 (que está arriba del teclado numérico) o 2 (que está abajo); si se pulsan ambos volverá a valer 5, se contrarresta una dirección con otra.

¿Y qué pasa si se pulsa arriba y a la izquierda? 5 + 3 - 1 = 7. Si te fijas en el teclado numñerico, el 7 está en la esquina superior izquierda, tal como quieres. O sea, que las 9 posibles direcciones del personajes se ven con los valores del teclado numérico, y te da igual cuántos botones de dirección tengas pulsados a la vez.

Aparte de eso, con ese fragmento de código no te podemos decir gran cosa del cuelgue porque Yawin ya te ha encontrado un fallo por falta de frame, y porque en ese código no hay nada que explique qué debe hacer en caso de pulsar dos botones a la vez. ¿Dónde se llaman a las dos instancias de animación?
Title: Re:cuelgue al usar dos teclas a la vez
Post by: Soviet on January 10, 2014, 09:43:13 PM
Eso es justo lo q necesitaba drumpi!! muchas gracias =), lo del frame en el lugar incorrecto ya se lo explique a Yawin
de todas formas muchas gracias por su ayuda!!
tratare de implementarlo y luego les cuento que tal