Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem KeyDown | problem so stlacanim viacero klaves

Dobrý den :)
Ucim sa html5 a spravil som si jednoduchý kod na pohyb hraca.. Problem je ze ked mam stlacených viac ako 4 alebo 5 klaves naraz tak uz to necheckuje pre dalsie keydown.. Niekde som cital ze problem je s usb klavesnicou ze tam je nejaky limit.. Ale ako to mam potom spravit aby to fungovalo? V hre je predsa nutne niekedy mat stlacenych v jednu chvilu viac ako 4 klaves.. neviem si poradit

Předmět Autor Datum
K cemu je mit stisknutých najednou 5 kláves?
Jan Fiala 27.06.2016 09:18
Jan Fiala
neviem presne preco ale na mojej klavesnici ked drzim (dolnu sipku, sipku dolava a space bar) pre po…
Paper96 27.06.2016 09:22
Paper96
takze nefunguju ani 3naraz? Si si isty ze mas ten program napisany spravne?
MM.. 27.06.2016 09:23
MM..
este sa len ucim takze islo by to urcite spravit rozumnejsie.. ale myslim si ze by to fungovat malo…
Paper96 27.06.2016 09:26
Paper96
ked si otvoris notepad a zmacknes tie sipky a potom medzernik, tak to pise medzeru?
MM.. 27.06.2016 09:32
MM..
funguje to rovnako takze nie.. ked drzim dole a vlavo a stlacim medzernik tak to uz nenapise nic.. z…
Paper96 27.06.2016 09:35
Paper96
Moja stara cherry vypada ze sa tiez tak sprava. Pouzi na strielanie inu klavesu. Ono to zavisi od to…
MM.. 27.06.2016 09:36
MM..
neda sa to nejako obísť? napriklad ze ked stlacim danu klavesu tak to povie akoby ta klavesa uz bola…
Paper96 27.06.2016 09:40
Paper96
Opbist sa to da tak ze si kupis inu klavesnicu.
MM.. 27.06.2016 09:43
MM..
no jasne, ale tu nejde len o mna ale aj o potencionálnych hracov :P zmenim ovladanie na wasd a myš t…
Paper96 27.06.2016 09:44
Paper96
klavesnice take veci nepodporuju, ma to technicke dovody. Lepsie klavesnice mozu vediet viac, horsie…
MM.. 27.06.2016 09:21
MM..
staci ked drzim (dolava,dole a space) a uz to nejde.. uz jedna z nich nereaguje..
Paper96 27.06.2016 09:25
Paper96
Zajímavé. Můžu mít dotaz? Proč používáš timery i na pohyb? inte0 = setInterval(function(){ positi…
Flash_Gordon 27.06.2016 09:39
Flash_Gordon
ak by som nemal pri pohybe interval tak by sa pohol hrac len raz a zastavil sa
Paper96 27.06.2016 09:41
Paper96
vyzerá to tak ze problem sa vyriesit nedá.. zalezi od klavesnice ako sa sprava. pouzijem asi WASD mi…
Paper96 27.06.2016 09:43
Paper96
Další řešení na zkoušku by bylo nějak takto: setInterval(function() { update(); draw(); }, 1000/FPS…
Flash_Gordon 27.06.2016 09:45
Flash_Gordon
Ano normalny clovek by mal trvalo nastavenu len jednu periodicky volanu fciu, v nej robil vsetjko po…
MM.. 27.06.2016 09:52
MM..
to je pravda :) funkciu refresh(); mam .. neviem preco to necheckujem v nej. poslední
Paper96 27.06.2016 10:17
Paper96

neviem presne preco ale na mojej klavesnici ked drzim (dolnu sipku, sipku dolava a space bar) pre pohyb dole dolava a strielanie tak uz nemozem robit napriklad strielat alebo nemozem ist dole ale idem dolava a strielam.. Ale ked to skusam (hornu sipku, sipku doprava a space) tak to funguje vzdy.. nechapem preco je tam nejaký blok alebo co :/

Další řešení na zkoušku by bylo nějak takto:

setInterval(function() {
          update();
          draw();
        }, 1000/FPS);
        
        function update() {
          if(keydown.space) {
            player.shoot();
          }
        
          if(keydown.left) {
            player.x -= 5;
          }
        
          if(keydown.right) {
            player.x += 5;
          }

To znamená vykreslovat všechno jednotně a pravidelně.
Nevolat timer pro každou klávesu.

Zpět do poradny Odpovědět na původní otázku Nahoru