Jump to content
Fórum Script Brasil
  • 0

Monitoração De Teclado


alanzanatta
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649k
×
×
  • Create New...