Problema con un getch() indisciplinado

Iniciado por SCUMM, 27 Enero 2014, 19:38 PM

0 Miembros y 1 Visitante están viendo este tema.

vangodp

#10
Te entiendo que se puede "hacer" lo que dices.
¿Pero me has entendido algo de lo que dije yo?


Digamos que el hilo verde es positivo y el rojo negativo. La corriente viene y donde se junte ambos sigue su curso hasta volver al chip, eso se produce en amarillo1. ¡Bien funciona! ¿No? ¡Si! De momento si funciona. Sigamos...
Ahora imagina que tenemos pulsado el amarillo1 y quiero pulsar el azul1 que es una continuacion del cable rojo. No funcionaria ya que esta siendo usado para juntar amarillo1(positivo y negativo).
No se que clase de señal envía, si continua o pulsos, si es continua no registraria la segunda si fuera pulsos registraría así: sdsdsdsdsdsdsdsdsdsdsd XD o puede que dddddddddddddd o sssssssssssssssss XD no tengo ni p**a idea jaja. Habría que hacer pruebas(Hackear el teclado) y paso.
El compañero explica que que necesita respuestas rápidas por que van a jugar 2 personas . Una sola no tiene este problema, eso ya lo sabemos.
Te incito a que hagas un código que imprima cual de ellas se pulsa antes no que imprima ambas juntas.
Primero que sabemos que si pulsamos una tecla y la sujetamos pasa eso :kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk XD. Mientras no la soltemos no va registrar lo que ha echo la segunda ¡Si! lo llega a hacer.
Después prueba apretar ambos botones a la ves, y vayas registrando los resultados.
O bien has tu un jueguillo así: 2 teclas, juega tu con un amigo o hermano, el que pulse primero sale ¡boum gana jugador 1!, ¡boum gana jugador 2!....
varias veces XD.
Veras que solo gana el 1, o el 2, si que aprietes las 2 mas o menos juntas, el resultado no se va decidir por rapidez sino por las disposiciones de las teclas"Hard".
Para joder aun mas cada teclado la cosa cambia. Si hago un código que use una tecla en particular a mi puede que hasta llegue a funcionar correctamente, pero cuando lo ejecutes tu, si tienes otro tipo de teclado la cosa cambia.
Hay varias personas mas entendidas que yo sobre el tema en este foro, pregunta les, o pruebas tu.
Aquí estoy seguro que cualquier programador medio decente es capaz de resolver el problema sobre la parte de programación. Quiero ver apañar el problema del hard, y mejor aun que funcione en todas las computadoras de manera igual. ¡Esta es la cuestión!
Si lanzara una playstation hoy por mas bueno que fuera tus programadores, los ingenieros de hard lo habrían liado parda, y tocaría tirar cientos de miles de plays a la basura jaja
Haz tu un código, que te paso el resultado jejej de haberlo ejecutado.
Puede que yo este hablando hasta chorradas por que a ti en tu teclado te vaya bien pero en el mio si pulso a y l me sale siempre a :/
Si te crees capaz de solucionar hazme un código y lo pruebo, estoy aquí para aprender ;)
Suerte!



SCUMM

Es cierto que el jugador que juegue con a,s,d va a tener ventaja sobre el que juega cob b,n,m.(en el gráfico se puede ver que las teclas mas altas y a la izquierda son prioritarias)  sin embargo este no es un problema real, puesto que el ÚNICO caso en el que el orden de teclas cuenta es cuando disparan ambos a la vez (cosa que apenas pasa) Y ya hemos visto como se puede solucionar haciendo que alguno de los jugadores juegue con otro dispositivo de entrada(ratón, mando xbox, joystick)
Además, tengo varios controles de error por usuario, por ejemplo en el caso de que el primer getch() registre el mismo valor que el segundo, salta un mensaje que dice"Trampa, se repite el asalto", o si se pulsa una tecla que no corresponde con un control, el vaquero simplemente no hace nada, además de que cada jugador solo puede cargar tres balas en su revolver ya que una partida suele durar quince turnos de media y con mas balas se haría eterno(todos estos sistemas están implementados en void ResolverDuelo(char accionpri,char accionse) )

Así que básicamente, el tema está zanjado, muchas gracias por responder a mi primer post con tanta entrega ;)
¡¡¡ Por cierto, gracias por sacar el tema del ghosting, tendré que estudiarlo a fondo para conseguir diseñar un buen mapa de controles para mis futuros juegos!!!

vangodp

De nada.
Recuerda, que no es lo mismo un teclado que otro.
También puedes hackear un mando viejo, o otro dispositivo que no uses mas.
Los mandos de las consolas suelen tener este problema resuelto ya que son dispositivos específicos para juegos.
Pero si piensas en hacer un juego que vayas distribuir al lo bestia debes tener eso en cuenta(y otros tantos problemas).
Este tema es muy interesante sobre el mapeado de un teclado:
Explica como elegir las mejores teclas para un teclado que tiene, como apalea el blocking y el ghosting, y según el consigue hasta 8 teclas sin esos problemas.
http://zonaarcade.forumcommunity.net/?t=44254872
Que ponga aquí tus avances en el campo del juego ;).
Si tienes algún código echo sobre los botones me gustaría probarlo cuando lo tengas listo, o el juego mejor  ;D