1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Keypress - VB

Discussão em 'Programação' iniciada por AlmaMater, 16 de Março de 2009. (Respostas: 7; Visualizações: 1838)

  1. AlmaMater

    AlmaMater Power Member

    Olá,

    Precisava de umas dicas... andei a pesquisar mas apenas encontro a forma de identificar uma determinada tecla! O que eu queria era como se faz num jogo de carros por exemplo.. estou a carregar na tecla do cursor para cima e ao mesmo tempo carrego na tecla do cursor da direita e o carro anda pa frente e vira pa direita..

    ou seja, conseguir identificar que ambas as teclas estão a ser pressionadas ao mesmo tempo.. é possível?

    thanks
     
  2. PNDmartins

    PNDmartins Power Member

    O vb não está preparado para isso.

    Segundo o que sei é extremamente complicado mas experimenta pesquisas no google, pode ser que alguem tenha descoberto como o fazer.

    Também nunca precisei.. Experimenta por DirectInput
     
  3. AlmaMater

    AlmaMater Power Member

    possa.. não me digas isso! :eek:
     
  4. jpaulino

    jpaulino Power Member

  5. AlmaMater

    AlmaMater Power Member

    Qualquer um.. o que tenho agora é o .net 2008
     
  6. jpaulino

    jpaulino Power Member

    Eu não entendo muito bem a tua pergunta, porque cada tecla funciona independentemente. Só tens é de testar condições quando qualquer tecla é pressionada ou solta.

    Vê esta pequena brincadeira ... cria um novo projecto em VB2008 e coloca lá este código para mostar isto mesmo:

    Código:
     
      Private lblUP As Label
        Private lblDOWN As Label
        Private lblLEFT As Label
        Private lblRIGHT As Label
        Private Sub changeLabelStatus(ByVal action As String, ByVal key As Windows.Forms.Keys)
            Select Case key
                Case Keys.Up
                    lblUP.Text = String.Format("{0} {1}", action, key.ToString)
                Case Keys.Down
                    lblDOWN.Text = String.Format("{0} {1}", action, key.ToString)
                Case Keys.Right
                    lblRIGHT.Text = String.Format("{0} {1}", action, key.ToString)
                Case Keys.Left
                    lblLEFT.Text = String.Format("{0} {1}", action, key.ToString)
            End Select
        End Sub
        Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
            changeLabelStatus("DOWN:", e.KeyCode)
        End Sub
        Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
            changeLabelStatus("UP", e.KeyCode)
        End Sub
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.KeyPreview = True
            lblUP = New Label With {.Text = String.Empty, .Top = 0}
            lblDOWN = New Label With {.Text = String.Empty, .Top = 25}
            lblLEFT = New Label With {.Text = String.Empty, .Top = 50}
            lblRIGHT = New Label With {.Text = String.Empty, .Top = 75}
            Me.Controls.AddRange(New Control() {lblUP, lblDOWN, lblLEFT, lblRIGHT})
        End Sub
    
    
     
  7. AlmaMater

    AlmaMater Power Member

    Amigo!! Acho que acabaste de me resolver o problema :D ainda não programei a aplicação, só testei esse exemplo e penso que é isto mesmo!!

    Obrigado :)
     
  8. PNDmartins

    PNDmartins Power Member

    Bacano.. não sabia que o vb.net já suportava multiplas teclas.
     

Partilhar esta Página