Jump to content

[Resolvido] Opengl glut keyboardfunc continua


seuqram
 Share

Recommended Posts

Bom dia.

Eu estou a desenvolver uma camara 3d com a biblioteca glut do opengl.

Está quase como terminada, apenas a movimentação da mesma está errada.

Eu usei esta funçao: glutKeyboardFunc para saber que tecla está a ser pressionada.

O problema desta função é que funciona do seguinte modo:

1->Se a tecla x está a ser pressionada executa a função de movimento 1 vez.

2->espera um determinado tempo.

3->se continuar a ser executada, agora, continua a função de movimento até a tecla x deixar de ser pressionada.

Ou seja esta função apenas é util para a escrita, por exemplo.

Já que esta função não convém á movimentação de objetos (como eu estou a fazer), queria uma função que captasse a tecla que está a ser primida e que seja continua.

Já procurei pela internet e não encontrei tal, pelo que vim a perguntar se algum de voces sabe.

Obrigado por ter lido este tópico ; )

Edited by seuqram
Link to comment
Share on other sites

porque não é essa a maneira que se usa a função.

o que deverás fazer é ter um local (variável) que determina o estado da tecla. quando essa função é chamada, alteras o valor dessa variável para 1 ou verdadeiro e quando a mesma tecla é notificada através da função glutKeyboardUpFunc marcas como 0 ou falso.

dessa maneira, quando fazes a actualização do estado do mundo, verificas somente o valor dessa variável que determina se a posição da camera deverá ser actualizada.

por outras palavras, essa função não deverá ser usada para actualizar o mundo, mas para notificar o estado do teclado.

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.