Ir para conteúdo
Fórum Script Brasil
  • 0

Monitoração De Teclado


alanzanatta

Pergunta

Preciso de algum recurso em c/c++, que leia mais de uma tecla ao mesmo tempo, agradeço se puderem me ajudar.

Isso, pois, estou fazendo um projeto onde utilizaei um program feito em c para controlar, via porta ,paralela três carrinhos de controle remotoa isso....três pessoas utilizarão o teclado ao mesmo tempo e cada uma coordenara um carrinho..

Estou tentando fazer um programa para que isso ocorra..no entanto estou tendo dificuldade...pois.. não consigo atraves de funções como getc(), getchar(), com que, por exemplo: supondo que as teclas W, P, 8, façam com que os respectivamente os carrinhos 1, 2,3 andem pra frente...se o primeiro jogador aperta a tecla w e a mantem apertada, o carrinho 1 vai pra frente, mas se ao mesmo tempo, alguém aperta a tecla P, o primeiro carrinho para de ir pra frente, e o carrinho 2 começa, sendo que minha intenção inicial era que os tres carrinhos andassem pra frente ao mesmo tempo.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Projeto bacana! : )

Use a técnica de Multithreading.

Descrição breve: um processo é formado por várias thread, que é um fluxo de execução. Você poderia fazer um programa com três thread e cada thread ter controle sobre um determinado carrinho. Dê uma pesquisada sobre o assunto, aqui mesmo na sala C/C++ já foi discutido 'Multithread'.

Falows! Qualquer coisa estamos aí!

P.S: Se puder, conte mais sobre o projeto. Grato desde já.

Link para o comentário
Compartilhar em outros sites

  • 0

já que voce demontrou interesse, vou detalhar o projeto, ele é na verdade, um futebol de robos radiocontrolados, é o projeto final de uma disciplina donde faço faculdade. Serão efetuados jogos de 3x3 robos entre os robos, os da minha equipe, possuem um diametro de 180mm, dois motores de passo, que também serão controlados através de scripts feitos na ling C.

O nosso maior problema esta sendo mesmo o controle dos carrinhos. Dei uma olhada nos fóruns sobre o multiread, pelo que entendi, ele trabalha com funções paralelas, até da pra usar, colocando um delay com um delay bem pequeno, mas não resolve o problema, pois, se eu fizer uma função para cada carrinho que seja responsável por ler os dados do teclado e mandar os respectivos comandos pela porta paralela, como frente, tras, lado direito, lado esquerdo, tudo bem, daria certo

Mas o problema esta na leitura das teclas do teclado, porque: quando eu estiver na função que cuida do carrinho dois e pedir pra ler as teclas, ele vai ler também as teclas que estao sendo pressionadas que correspondem aos comandos do carrinho um, entende? eu não posso usar um getche() por exemplo, e fazer um if, porque mesmo que a tecla que mande o carinho 2 pra frente esteja pressionada, pode ser que na variavel analisada esteja a que mande o carrinho 1 pra frente. ou seja, o carrinho 2 não se mexe mesmo que eu esteja pressionando a tecla que diz pra ele fazer isso.

Eu precisava de algum comando C, que trabalhasse como em jogos de computador, por exemplo, Counter Strike, e qualquer outro, se voce aperta duas teclas ao mesmo tempo, ele le as duas e ordena algum comando, como quando se aperta lado direito e frente, o programa entende que dus tecals estao sendo pressionadas ao mesmo tempo e executa um processo, no caso, andar em curva.

Se alguém souber de algo, agradeço muito, pois a entrega desse projeto é na semana que vem.

Link para o comentário
Compartilhar em outros sites

  • 0

você provavelmente vai encontrar problemas nas caracteristicas de hardware do teclado. me parece que o buffer dele não vai aceitar a terceira tecla.

Tente um teclado USB.

Ou pode tentar trabalhar com teclas de "estado" shift, alt e control.

por isto muitos jogos usam estas teclas. Elas são estado e não caracter no buffer.

Ou controle um pelo teclado e os outros dois por 2 joysticks usb.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...