Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Sterowanie kursorami - problem "pauzy"
Ravender




Typ: neutral
Postów: 30
Zarejestrowany: Feb 2005
Sterowanie kursorami - problem "pauzy"

Otworzcie sobie jakikolwiek notatnik, nacisnijcie i przytrzymajcie klawisz powiedzmy "a". Jak widac, najpierw pojawi sie literka a, potem bedzie przerwa, a nastepnie beda znowu pojawias sie literki "a"... i tutaj mam problem. Czy mozna to jakos "wyłaczyc"?

Chodzi mi o to, zeby sterujac postacia w grze (powiedzmy, niech to bedzie jakis shape i zwiekszamy jego LEFTa zeby szedl w prawo).. i przytrzymujac kursor postac po prostu poruszala sie w prawo ale zeby nie bylo tej przerwy?

Probowalem API... tzn GetKeyState jednak program wysypywal mi bład. Wkleilem przyklad HOOKS z ApiGuide ale tam rowniez wystepuje ta "pauza".

26-02-2005 15:14
Pokaż profil Ravender  Wyślij email do Ravender   Odwiedź stronę Ravender       2854667
Ravender




Typ: neutral
Postów: 30
Zarejestrowany: Feb 2005

ZNALAZLEM!!! .. Na jakiejs francuskiej stronie byl przyklad. A to co zrobilem

Wstawcie sobie na forme timera o intervale 5
Wstawcie powiedzmy shape'a.. jakiegos malego z lewej stronie formy .. a teraz kod

Option Explicit
Dim x
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Private Sub Timer1_Timer()
x = GetKeyState(&H27)
If (x And &H80) = &H80 Then Shape1.Left = Shape1.Left + 10
End Sub

Po nacisnieciu prawego kursora dziala

26-02-2005 15:38
Pokaż profil Ravender  Wyślij email do Ravender   Odwiedź stronę Ravender       2854667
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Dodam tylko dwie uwagi od siebie:

1. Opisana przerwa wynika z samego działania powtarzania klawiszy w Windowsie i chroni przed przypadkowym wpisaniem wielu liter za jednym naciśnieciem. Zmienić to można w ustawieniach klawiatury, podejrzewam też, że przez WinAPI na czas działania programu również się da.

2. Interval w Timerze można ustawić równie dobrze na 40. I tak są małe szanse, by złapał coś poniżej tego...


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

27-02-2005 04:58
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Ravender




Typ: neutral
Postów: 30
Zarejestrowany: Feb 2005

A czy wykorzystując GetKeyState mozna wykryc puszczenie klawisza? Mam na mysli trzymanie kursora.. a potem po jego puszczeniu wykonuje sie jakis kod programu.

27-02-2005 12:18
Pokaż profil Ravender  Wyślij email do Ravender   Odwiedź stronę Ravender       2854667
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Sprawdzić, czy wystąpiła różnica między poprzednim stanem klawisza, a aktualnym? Jeśli tak i teraz jest niewciśnięty to znaczy, że został puszczony


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

27-02-2005 13:03
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1