AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Input für Spiele?

Ein Thema von SonicTTH · begonnen am 8. Jan 2010 · letzter Beitrag vom 17. Jan 2010
Antwort Antwort
Seite 1 von 2  1 2      
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#1

Input für Spiele?

  Alt 8. Jan 2010, 17:15
Hallo,

Ich programmiere derweil einen Bomberman clon mit Andorra 2D.

Mir ist aufgefallen dass es beim Spielen mit mehreren Spielern (es werden durchschnittlich mehr als 4 oder 5 tasten gedrückt) dazu kommt dass einige befehle nicht ankommen.

Wie kann man das umgehen?

Danke,

Sonic
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Input für Spiele?

  Alt 8. Jan 2010, 17:19
Ich werfe mal GetAsyncKeyState in den Raum...
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Input für Spiele?

  Alt 8. Jan 2010, 18:05
Zitat von SonicTTH:
Mir ist aufgefallen dass es beim Spielen mit mehreren Spielern (es werden durchschnittlich mehr als 4 oder 5 tasten gedrückt) dazu kommt dass einige befehle nicht ankommen.

Wie kann man das umgehen?
Wahrscheinlich gar nicht, denn das klingt nach einer Hardware-Limitation. Siehe auch Rollover
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#4

Re: Input für Spiele?

  Alt 9. Jan 2010, 12:34
@ NamenLozer: Das glaube ich nicht denn bei anderen spielen geht das, hab ich schon oft gesehen.
@ Teekeks: Vielen Dank, das hilft mir weiter. Ich werde mehr darüber in erfahrung bringen und nach erfolgreicher anwendung meine Ergebnisse hier zur verfügung stellen.
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#5

Re: Input für Spiele?

  Alt 10. Jan 2010, 19:19
Also, ich hab jetzt mal etwas mit der Funktion GetAsyncKeyState ausprobiert und zum test schnell ein programm gemacht das nur einen timer enthält der alle 30ms folgende prozedur aufruft (ME ist ein memo):

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
        ME.Lines[0] := IntToStr(GetAsyncKeyState(VK_LEFT)) ;
        ME.Lines[1] := IntToStr(GetAsyncKeyState(VK_RIGHT)) ;
        ME.Lines[2] := IntToStr(GetAsyncKeyState(VK_UP)) ;
        ME.Lines[3] := IntToStr(GetAsyncKeyState(VK_DOWN)) ;
        ME.Lines[4] := IntToStr(GetAsyncKeyState(VK_Space)) ;
        ME.Lines[5] := IntToStr(GetAsyncKeyState($44)) ;
        ME.Lines[6] := IntToStr(GetAsyncKeyState($41)) ;
        ME.Lines[7] := IntToStr(GetAsyncKeyState($53)) ;
        ME.Lines[8] := IntToStr(GetAsyncKeyState($57)) ;
        ME.Lines[9] := IntToStr(GetAsyncKeyState($51)) ;
end;
Die 5 letzten tasten sind W, A, S, D und Q.
Die Ausgabe sieht (höchstens!) Wie folgt aus (Auch wenn ich alle abgefragten tasten gleichzeitig drücke):

0
-32768
0
-32768
0
-32768
0
-32768
-32768
-32768

Also maximal 6 tasten, wenns gut klappt, manche reihenfolgen bringen aber auch noch weniger tasten die gedrückt werden zum ergebnis.
  Mit Zitat antworten Zitat
Looper

Registriert seit: 28. Sep 2007
Ort: Hamburg
131 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Input für Spiele?

  Alt 10. Jan 2010, 22:23
Wenn ich jetzt Mist erzähle berichtigt mich^^, aber ich glaube der Tastaturpuffer ist dann überlastet (ich kenne kein spiel bei dem man mehr als mehr als 6 Tasten drücken kann)

schönen Abend und gute Nacht
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Input für Spiele?

  Alt 10. Jan 2010, 22:33
NamenLozer hat das Problem doch schon beschrieben - ihm darf spätestens jetzt auch ruhig Glauben geschenkt werden
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#8

Re: Input für Spiele?

  Alt 10. Jan 2010, 23:09
Nein, das glaube ich nicht, was NamenLozer geschrieben hat. Wenn ich z.b. Noch ein paar F* tasten dazu nehmen dann kann da der tastendruck in bestimmten bereichen auch gleichzeitig mit 6 anderen tasten ausgelesen werden, sodass es schon 9 verschiedene gleichzeitig sind. Mag sein dass das irgendwann knapp wird aber ich denke zumindest 3 spieler sollten bei einem kleineren spiel wie meinem bomberman clon hier gleichzeitig an einer tastatur spielen können.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Input für Spiele?

  Alt 10. Jan 2010, 23:17
Das hängt stark von der Tastatur und den Tastenkombinationen ab. Viele Tastaturen vertragen im Schnitt nur 3 gleichzeitige Tastendrücke, und selbst hochwertige Modelle oft nur bis zu ca. 6. Nur Steuerungstasten wie Shift, Control, Pfeiltasten usw. sind meistens so gelegt, dass sie alle gleichzeitig gedrückt werden können. Außerdem sind die möglichen Tastenkombinationen nicht bei jeder Tastatur gleich - ich kann z.B. Frets on Fire in der Standardkonfiguration nicht spielen, weil die Tasten F1 - F4 bei mir sofort blockieren. Also bau auf jeden Fall eine Möglichkeit ein, dass der Spieler die Tasten umkonfigurieren kann.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Input für Spiele?

  Alt 11. Jan 2010, 02:01
Zitat von SonicTTH:
Nein, das glaube ich nicht
Du hast dem verlikten Artikel genau 0 Aufmerksamkeit geschenkt oder? Ich hab nichtmal das Problem, wusste aber auch erst nach dieser Lektüre, dass z.B. Funktions- und Sonder- sowie Umschalttasten einer anderen bzw. keiner Limitierung unterliegen, und dass es da teils große Unterschiede zwischen Tastaturen gibt. So ein Link ist nicht geposted worden damit die Schrift schön blau ist...
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz