Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 27. květen 2010, 21:17:56 Předmět: Maximum současně držených kláves |
|
|
Zdravím, dělám hru pro více hráčů na 1 klávesnici, ale ztroskotal jsem na problému, že na mém notebooku lze držet jen 3 klávesy naráz, pak už další nereagují. Stav kláves zjišťuji přes GetAsyncKeyState. Pamatuji, jak s tím bývaly problémy za dob DOSu, ale že na totéž narazím i v roce 2010 mne překvapilo.
Zkusil jsem hry Multiracer (od frci) a Aquadelic, obě v módu 2 hráčů nelze ovládat (hráči drží akceleraci a pokud jeden zatočí, další už zatáčet nemůže)..
Chyba je v klávesnici/driveru nebo ještě jinde? Kolik kláves snese vaše nebo běžná klávesnice? |
|
Návrat nahoru |
|
|
MePHyst0
Založen: 28. 07. 2007 Příspěvky: 85 Bydliště: SVK/CZK
|
Zaslal: 27. květen 2010, 21:38:19 Předmět: |
|
|
asi presne neodpoviem na tvoj dotaz, ale ja som to za davnych casov vo visual basicu robil tak, ze som pocuval na keydown a keyup eventy. tieto sa vyvolavali nezavisle na tom kolko klaves uz bolo stlacenych. na zaklade tychto eventov som potom nastavoval nejake flagy(chod_dolava,chod_hore,atd) a z tych som potom v hernej smycke urcoval vysledny smer pohybu |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 27. květen 2010, 22:03:19 Předmět: |
|
|
To není chyba, ale vlastnost daného HW. Prostě se s tím nic nedá dělat, leda koupit lepší klávesnici. Tuším jsem viděl takovou, která umožňovala stisk spousty kláves najednou, ale byla dost drahá. Ovladačem to rozhodně není.
Navíc je to u každé klávesnice jinak (závisí to asi na vnitřním zapojení kláves). Já jsem to částečně řešil tak, že jsem umožnil namapovat klávesy téměř libovolně, navíc jsem umožnil využití také tlačítek myši. Také stojí za povšimnutí, že pokud se například k notebooku připojí externí klávesnice, tak se s interní navzájem neblokují. Jinak MultiRacer ovládat jde, pokud si to správně nastavíš. I když možná je tvá klávesnice takový šmejd, že na ní kombinace osmi navzájem se neblokujících kláves neexistuje.
Tato klávesnice
jich snese najednou minimálně 9, ale jen určité kombinace. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
|
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 27. květen 2010, 22:38:35 Předmět: |
|
|
MePHyst0> nadšeně jsem to vyzkoušel, ale nepomohlo, reagují vždy jen první 3 klávesy a to jakékoliv
frca> díky za info.. otestuji ještě jiné notebooky a klávesnice a případně půjdu umrznout do lesa :/ |
|
Návrat nahoru |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1536 Bydliště: u Prahy
|
Zaslal: 27. květen 2010, 23:37:59 Předmět: |
|
|
Ještě máš možnost použít ke hraní gamepady/joysticky, těch taky můžeš mít, kolik chceš. Použití v SDL hře viz třeba náš Becher Rescue . _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 28. květen 2010, 08:07:42 Předmět: |
|
|
citace: |
Zkusil jsem hry Multiracer (od frci) a Aquadelic, obě v módu 2 hráčů nelze ovládat (hráči drží akceleraci a pokud jeden zatočí, další už zatáčet nemůže).. |
U toho Aquadelicu jsme týhle vlastnosti klávesnice přizpůsobili ovládání. Šipku dopředu nemusíš držet, stačí jen přidat plyn a zůstane přidanej. (Ano, měli sme to napsat před startem závodu na obrazovku, málokdo si tý vlastnosti všimne.) Třeba to taky vyřešíš nějakou drobnou úpravou. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 28. květen 2010, 22:17:21 Předmět: |
|
|
Zkusil jsem dnes 4 klávesnice a 3 notebooky a výsledek je spíše neuspokojivý (nepoužitelné klávesnice převažují).
Odbočím-li mírně, windows zprávy z rodiny MM_JOY zachycují pouze dva joysticky, nebo herní zařízení celkově (volant, gamepad, ...) ? |
|
Návrat nahoru |
|
|
Matasx
Založen: 17. 08. 2008 Příspěvky: 258
|
Zaslal: 29. květen 2010, 11:24:29 Předmět: |
|
|
Pro realizaci klávesnice se používá takováto matice
- je to kvůli tomu aby se na řídicím obvodu ušetřil počet vstupů (drahej to čip kterej by měl přes 100 vstupních nožiček)
- no pak se programově hodí jednička například na první řádek a podle toho v jakém sloupci se objeví jedničky ti z toho vyjde které klávesy jsou stisknuté. Když se nad tím zamyslíš tak ti vyjde že některé kombinace jsou prostě nepřípustné (keylock)
- tzn. pokud například stisknu tlačítka 9,5,6 (obrázek vlevo) a pošlu signál na řádek 2 -> vyjde mi z toho že je stisklá klavesa 9 a 10 i když to není pravda |
|
Návrat nahoru |
|
|
Poky
Založen: 29. 06. 2009 Příspěvky: 184 Bydliště: Písek / Plzeň
|
Zaslal: 29. květen 2010, 12:14:00 Předmět: |
|
|
Matasx: Dovolím si trochu upřesnit. Takovéto matice se používají pouze u menších klávesnic, u větších (jako například PC nebo NB klávesnice to má udělané malinko jinak. PC a NB klávesnice mají skupinkově rozdělená některá tlačítka (třeba písmenka Q,W,E,A,S,D,Y,X,C) a ty multiplexují samostatně vysokou rychlostí (stovky nanosekund), klávesnice poté obsahuje vyrovnávací paměť a odesíla sériově do PC. U NB klávesnic je problém větší, tam mají tyto skupinky stejný multiplex a proto se může stát, že když stisknete dvě klávesy, vyvolá se stisk i nějaké jiné třetí, nebo se naopak nevyvolá vůbec . Tento problém mám na svém NB, kde když stisknu Shift+ž a 6 pak pustím, tak se mi tato změna neregistruje a píšu neustále samou 6666.... apod. |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 29. květen 2010, 22:22:55 Předmět: |
|
|
To je zajímavé. A co že máš vlastně za NB? _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
|
|