PROBLEMA: movimentar para diagonal e atirar (ao mesmo tempo)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

PROBLEMA: movimentar para diagonal e atirar (ao mesmo tempo)

Mensagem por maurozb em Sex 22 Ago 2008, 10:23

Help!

Nota: é do tutorial: Beginner’s Guide to Game Maker 4.3 Programming by Carl Gustafsson
Tutorial original (em Inglês) / Tutorial (em português)

Fiz um protótipo de shooter ("jogo de nave"), vertical, e quando vou movimentar para a diagonal e atirar ao mesmo tempo não está funcionando. Exceto para uma das diagonais (sentido NE - Nordeste, comparando com a Rosa dos Ventos de 8 direções). As outras diagonais (para esquerda e as duas para baixo) não funcionam ao mesmo tempo com o tiro.

Para a movimentação da "nave" estou usando "Execute Code" e a seguinte instrução GML nos eventos Keyboard (direcionais):

Código:

x += 5; // Para direita <right> com velocidade 5
x -= 5; // Para esquerda <left>
y += 5; // Para baixo <down>
y -= 5; // Para cima <up>

Com isso o player movimenta para todos os lados e para as diagonais. Mas como disse anteriormente, em 3 diagonais não é possível mover e atirar ao mesmo tempo.

No envento Keyboard <space> da nave tem o seguinte código:

Código:

if (gunReady = true) // Verifica se a variável é verdadeira
{
    instance_create(x,y,objBullet); // Cria a instância do objeto Bullet (tiro) a partir do mesmo ponto onde se encontra a nave no jogo (x, y).
    gunReady = false; // Desabilita o tiro da nave. Variável torna falsa.
    alarm[0] = 10; // Tempo de 10 frames para chamar o Evento alarm[0] que contém um código para habilitar novamente o tiro (gunReady = true;).
}

O código acima é para o tiro não fluir continuamente e sim pausadamente.

Tipo, to até achando que pode ser o teclado aqui...

Alguém poderia me ajudar?
O restante funfa blz.

maurozb

Número de Mensagens : 21
Idade : 36
Data de inscrição : 02/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: PROBLEMA: movimentar para diagonal e atirar (ao mesmo tempo)

Mensagem por maurozb em Sex 22 Ago 2008, 10:45

Caraca...

Peço desculpa pelo POST. Mas agora que ele está aí, talvez sirva para alguém...

O problema era nada menos que a tecla SPACE mesmo.

Assim que tentava ir para alguma diagonal e atirar ao mesmo tempo não conseguia... Troquei a tecla SPACE pela tecla CTRL e está funcionando blz.

O Tutorial do Carl Gustaffson está certo. O Prow aqui era o teclado mesmo. aff...

foi mal ter postado antes de ter tentado a técnica de mudar a tecla...

Mas espero que se houver caso semelhante esse post possa ajudar.

flw!

maurozb

Número de Mensagens : 21
Idade : 36
Data de inscrição : 02/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: PROBLEMA: movimentar para diagonal e atirar (ao mesmo tempo)

Mensagem por Convidad em Sex 22 Ago 2008, 22:54

E aí maurozb!

Cara isso na verdade não é um problema da tecla "space". Isso é o buffer do teclado.
Esse buffer controla o fluxo contínuo de teclas e infelizmente tem um limite, o que provoca o "cancelamento" de outras teclas!

Você alterar o valor do buffer pelo regedit, o editor de registros do Windows.

Procure pela chave:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesKbdclassParameters

A chave certa é KeyboardDataQueueSize. O valor padrão é 100 (64 em hexadecimal). Altere esse valor para 150. Acho que vai resolver o seu problema como resolveu o meu.

Feche o editor. Boa sorte!!!

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: PROBLEMA: movimentar para diagonal e atirar (ao mesmo tempo)

Mensagem por Kabeção em Sab 23 Ago 2008, 08:43

Boa brendan.
Essa de mudar a chave de registro vai ser bem útil.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: PROBLEMA: movimentar para diagonal e atirar (ao mesmo tempo)

Mensagem por maurozb em Sab 23 Ago 2008, 09:11

Vlw brendan por responder. Muito obrigado!

À respeito do problema, encontrei a chave e alterei o valor para 150, mas até o momento não funcionou...

Detalhe: no meu PC funciona normalmente (WinXP), não funcionou no PC da minha noiva (WinVista).

Estarei testando outros valores...

Em todo caso, devemos pensar no seguinte: qdo distribuir o jogo precisamos "prever" de certo modo que o PC do jogador pode ocorrer o mesmo problema. E geralmente esse jogador é leigo... Então o mais correto seria mudar a tecla mesmo.

Mas a solução que vejo mais COERENTE é que o jogo tenha a possibilidade de configurar os controles (teclas). Assim cada usuário usará as teclas que achar melhor. E consequentemente se uma não funcionar corretamente, ele poderá tentar outra.

E novamente, MUITO OBRIGADO brendan!

FLW!

maurozb

Número de Mensagens : 21
Idade : 36
Data de inscrição : 02/07/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: PROBLEMA: movimentar para diagonal e atirar (ao mesmo tempo)

Mensagem por Convidad em Sab 23 Ago 2008, 16:19

Você tem razão maurozb. Como eu havia dito, eu também tive este problema e também acho que não seria coerente alterar o registro do sistema sem avisar ou pedir permissão ao usuário.

Bom, de qualquer forma eu vou estudar esse problema pra tentar resolvê-lo de uma forma mais técnica. Kinking havia me dito em outro post que a limitação também poderia ser do hardware, e acho que tem relação.

Pode ser esse o motivo de ter funcionado aqui e aí não. Vou verificar isso, afinal é uma coisa que compromete toda a diversão de um jogo: a jogabilidade!

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: PROBLEMA: movimentar para diagonal e atirar (ao mesmo tempo)

Mensagem por Conteúdo patrocinado Hoje à(s) 16:22


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum