SetCursorPos_() auf Screen? [Gelöst]

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
gnasen
Beiträge: 578
Registriert: 01.08.2007 14:28
Computerausstattung: PB 4.60

Beitrag von gnasen »

oder, noch gemütlicher, alle gedrückten Tasten in eine Liste. Sollte alle Folgeoperationen erheblich vereinfachen.
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

geht so aber auch gut:

programm von gerade xD

Code: Alles auswählen

taste$ = "" 
  for i = 0 to 255 
    if keyboardpushed(i) 
      taste$ = taste$+str(i)+":" 
    endif 
  next i 
+ abfrage

Code: Alles auswählen

taste1.b = val(stringfield(taste$,1,":"))
taste2.b= val(stringfield(taste$,2,":"))
taste3.b = val(stringfield(taste$,3,":"))
taste4.b = val(stringfield(taste$,4,":"))
jetzt kann man die (Byte) tasten einfach prüfen wie man will...

MFG Brügge
Abgeschlossene games: No Name Game (NNG) Download-Link:
http://web56.login-1.loginserver.ch/eas ... 2125104111
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Brügge hat geschrieben:geht so aber auch gut:

programm von gerade xD

Code: Alles auswählen

taste$ = "" 
  for i = 0 to 255 
    if keyboardpushed(i) 
      taste$ = taste$+str(i)+":" 
    endif 
  next i 
+ abfrage

Code: Alles auswählen

taste1.b = val(stringfield(taste$,1,":"))
taste2.b= val(stringfield(taste$,2,":"))
taste3.b = val(stringfield(taste$,3,":"))
taste4.b = val(stringfield(taste$,4,":"))
jetzt kann man die (Byte) tasten einfach prüfen wie man will...

MFG Brügge
Wo ist da der Vorteil gegenüber einem Array?

Code: Alles auswählen

Dim taste.l(255)

for i = 0 to 255 
  taste(i) = keyboardpushed(i)
next i

; taste(x) = 0 -> Taste nicht gedrückt
; taste(x) <> 0 -> Taste gedrückt
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Wo ist da der Vorteil gegenüber einem Array?

gar keiner, nur nachteile.

aber warum nicht gleich so?

Code: Alles auswählen

Dim taste.b(255) 
GetKeyboardState_(@taste(0))
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Tastenabfrage mit Liste

Beitrag von kswb73 »

Er will doch wissen welche Taste(n) gedrückt wurde, nicht ob eine oder mehrere bestimmte Tasten gedrückt wurden. Man könnt jetzt einfach eine Liste nehmen. Dann kann man die Tasten auch noch Speicherschnonend auswerten. (Man Speichert ja nur die aktuelle gedrückten Tasten)

Code: Alles auswählen

newList Key.w()

ClearLIst(Key()) ;Damit wir nicht noch die alten Ergebnisse behalten
  For a=1 To 255
    if KeyboardPushed(a)
    AddElement(Key())
    Key()=a
    endif
  next a
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich will einfach mal stark bezweifeln, dass 256byte heutzutage ein solches problem darstellen.

hier kommt es meiner ansicht nach eher auf praktikabilität drauf an,
und da ist ein String der alle Nummern aller gedrückten tasten beinhaltet nunmal das umständlichste,
und eine Liste auch nicht grad praktisch, weil ich die immer von anfang an durchsuchen muss.

außerdem ist es noch die Frage, wozu Tompazi dieses überhaupt benötigt.

letztendlich braucht man "wie ist die Nummer der taste die gerade gedrückt wurde"
nur dann, wenn man eine alternativ-Belegungs-Tabelle aufsetzt.
Nur in dieser Situation im Options-Menu, wo man die Tastaturbelegung ändern will.
in allen späteren Situationen genügt die Zuordnungstabelle und die nativen PB-Funktionen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

außerdem ist es noch die Frage, wozu Tompazi dieses überhaupt benötigt.

@kaeru Gaman

also, ich benötige sowas bei Options von Games...
wenn man zB eine Taste belegen will xD
Abgeschlossene games: No Name Game (NNG) Download-Link:
http://web56.login-1.loginserver.ch/eas ... 2125104111
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

achso, und ich dachte schon, du brauchst es für alternative Tastenbelegungen....
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Kaeru Gaman hat geschrieben:aber warum nicht gleich so?

Code: Alles auswählen

Dim taste.b(255) 
GetKeyboardState_(@taste(0))
Weil nicht jeder nur Windows verwendet. ;)

Ansonsten kommt es in der Tat darauf an, was man genau machen möchte
und ob es einfach, schnell, umständlich, langsam, speicherfressend (256 Longs = 1k!),
portabel usw. sein soll.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Antworten