Problema raro: ¿no existe el 1?

Started by Drumpi, December 03, 2009, 04:49:56 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Hola a todos:
Pues veréis, he detectado un problema muy raro. Resulta que ya casi tengo listo el engine de Doggy, pero no me detecta bien el salto.
Os lo explico por encima: tengo en el fichero jkey.inc el proceso ctrl_teclas() encargado de detectar las pulsaciones de las diversas teclas posibles, tanto por joystick (si existe) como por teclado, y su objetivo es que si está pulsado incrementar el valor de una variable, y si no, ponerla a cero. Es un esquema clásico, usando un array de tres vectores: uno que indica la cte de la tecla del teclado, otra con la cte del boton del joy correspondiente al mismo movimiento que el anterior, y la tercera variable que es la que indica cuanto tiempo lleva pulsada.

El caso es que en prota.inc, en las líneas 93-95 compruebo si el valor del salto vale 1 y que diga algo por la consola de comandos. Bien, si nos ponemos en una zona libre (usad F1 para ponerlo a velocidad normal), al pulsar Z debería saltar, y sacar la frase por la consola. Pues bien, no siempre funciona, es como si en ocasiones saltase del 0 al 2.

A ver si vosotros notais algo raro o es cosa de mi versión de Bennu. Yo uso actualmente la r110.
Se que no debería pedir que me depuraseis código, pero no se reproducir el fallo con menos lineas, y como se insiste en que notifiquemos cualquier fallo de Bennu antes que rodearlo, pues aquí os lo dejo:
http://drumpi.se32.com/cosas/Doggy_bad.rar

PD: el que quiera, puede usar el código de detección de botones para el concurso, si el fallo no está ahí (que sería raro).
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)

Drumpi

Nuevo dato: el valor 1 sí que existe.
He hecho nuevas pruebas y el resultado es que
say(teclas[k_jump][2]==1);
No devuelve TRUE todas las veces que teclas[k_jump][2] vale 1 (y sí, vale 1, comprobado), por lo que puedo descartar finalmente que el fallo sea mío, he pillado un bug... aunque no entiendo por qué exactamente lo mismo funciona en FenixLand con una efectividad del 100%.

NOTA: k_jump es una variable de valor 4, siempre.
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)

SplinterGU

#2
querido amigo drumpi...

tenes 2 frames en el modulo del protagonista... por eso no va... :P

De quien es el fallo? que verguenza! ( a reirnos juntos... te digo que estaba camuflado, lo vi de pedo, me di cuenta porque saque el say del if y le agregue la variable para ver que valores tomaba y vi que incrementaba de 2 en 2... :D )
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

panreyes


SplinterGU

cuando decia riamonos juntos me referia a drumpi y yo...

che, bueno, no tiene la culpa... mira que a mi tambien me costo descubrirlo... estuve probando y viendo el codigo unos 5 minutos...

no nos burlemos o va a dejar de reportar cosas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

lol tengo alumnos de secundaria que empiezan con Bennu y no tienen esos fallos :o

Nada Drumpi, son cosas que pasan, yo también me avergüenzo a veces de errores estúpidos que cometo después de tanto tiempo.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

O.OU
Me... me acojo al comodín de haber respondido 10 dudas seguidas en el foro.
^^U
Juer, otro fallo tonto, lo siento si os he hecho perder el tiempo de esta forma, es peor que cuando le dije a Puck que no funcionaba UFenix y era culpa mía de estar usando un tmf viejo.
Auto lol.

Muchas gracias, que razón tiene el dicho "ven más 4 ojos que 2", o "es más fácil ver la paja en ojo ajeno". Gracias, en serio.



Lo que pasa es que ahora Echo corre a la velocidad del sonido, adelanta a Sonic (mola, ya tengo medio hecho el motor de Sonic ¿alguien lo quiere probar? ;D añado las rampas y los loopings y listo).
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)

DjSonyk

LLegue tarde Drumpi no me di cuenta ,bueno al menos ya lo tienes resuelto ¿no?

blostec

Drumpi castigado de cara a la pared. Fuera bromas, eso le puede pasar a cualquiera  :D