Como evitar fantasmas ao pressionar várias teclas?

15

Estou trabalhando em um jogo para PC de rolagem lateral em 2D que usa a biblioteca de jogos SFML. O problema que não consigo resolver é que em muitos teclados a combinação de três ou mais teclas (como w + d + k) não está funcionando. Existe alguma maneira de resolver esse problema?

arandomguy
fonte
11
Eu nunca tive um teclado onde W + D + K resultaria em um problema de fantasma. Tem certeza de que o que está vendo é fantasma e não um número limitado de entradas simultâneas no teclado?
Logarr
@Logarr " Ghosting " é o problema de algumas teclas do teclado não funcionarem quando várias teclas são pressionadas simultaneamente. As teclas pressionadas que não aparecem no computador ou parecem ter desaparecido são consideradas "fantasmas".
Cees Timmerman
@ CeesTimmerman - Eu sei exatamente o que é fantasma. O que estou dizendo é que, como W + D + K não forma uma interseção, nunca tive um teclado que foi projetado de uma maneira que tivesse aquela combinação fantasma.
Logarr
@Logarr Então o limite estaria no software da OP, não no teclado ou no driver. Além disso, nem todos os teclados são iguais.
Cees Timmerman

Respostas:

28

Você não pode. Pelo menos, não como desenvolvedor de jogos.

Como jogador, você pode comprar teclados mais caros com recursos "anti-fantasma", mas, caso contrário, a limitação faz parte do próprio hardware; portanto, não há nada que você possa fazer no software para resolvê-lo.

Confira esta página de demonstração para ver como funciona o teclado fantasma, além de uma demonstração: http://www.microsoft.com/appliedsciences/antighostingexplained.mspx

Portanto, suas melhores apostas são:

  • Não use um esquema de controle que exija muitas teclas pressionadas simultaneamente
  • Use consoles de jogos, se estiverem disponíveis
  • Deixe o jogador remapear as chaves para encontrar um conjunto de chaves não-fantasma para seu hardware
  • Se necessário, mantenha-se no lado esquerdo do teclado (ao redor WASD) porque os teclados tendem a evitar fantasmas por aqui

Historicamente, muitos jogos de PC utilizado teclas modificadoras ( Ctrl, Alt,Shift ), como parte de seus controles, porque essas chaves foram wired para lidar com sendo pressionado juntamente com outras teclas, para evitar o efeito fantasma. Essa prática meio que caiu em desuso durante os anos 90, porque as teclas modificadoras estavam sendo cada vez mais usadas pelo sistema operacional, o que interferia no jogo.

Posteriormente, certos gêneros de jogos tiveram seus controles unidos em torno de clusters de teclas, principalmente o gênero FPS em torno de WASD+ mouse, mas outro exemplo seria jogos indie japoneses em torno deZXC + setas. De uma maneira auto-realizável, como a maioria dos jogos usava esses clusters, os fabricantes de teclados também garantiam que os fantasmas fossem minimizados nessa área; portanto, se você seguir os mesmos controles usados ​​por outros jogos populares, também evitará fantasmas.

Olhando para o seu exemplo, We Destá bem, mas Knão está; por acaso você está usando Kcomo controle direcional? Nesse caso, considere usar as teclas de seta.

congusbongus
fonte
11
Sua resposta começa com "Você não pode", mas depois dá bons conselhos sobre exatamente como evitá-la. Eu acho que a resposta certa aqui é "escolha teclas de controle que não tenham um problema de fantasma na maioria dos teclados". Boas informações aqui.
JPhi1618
@ JPhi1618 Eu acho que há uma diferença entre "aqui está como evitar fantasmas" e "aqui é como lidar com o fato de que a maioria dos teclados têm teclados que fantasma"
undergroundmonorail
3

Compre um teclado melhor.

A fantasma é causada pelo próprio hardware. Mesmo muitos teclados de jogos ainda terão esse problema; eles investem apenas na correção do problema para chaves "comuns" como WASD (mas não 'K' por exemplo).

http://www.microsoft.com/appliedsciences/antighostingexplained.mspx

Sean Middleditch
fonte
6
... e diga a todos os seus clientes que também comprem teclados melhores? Isso não soa como a solução mais amigável.
Philipp
A vida é difícil. Forçar seus clientes a comprar hardware melhor ou não projetar jogos que são intrinsecamente quebrados em teclados de commodities. Isso não é exatamente ciência de foguetes. :)
Sean Middleditch