Não soca enquanto anda

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

Não soca enquanto anda

Mensagem por EdJr em Sab 10 Jul 2010, 19:50

E aí, pessoal!

Não sei mais o que fazer. É um código extremamente simples e não funciona. Programei para o objeto parar e o sprite mudar quando uma tecla for apertada, mas não funciona corretamente. Antes de tudo, os códigos:

Create:
Código:

pode_teclar = true

Alarm0:
Código:
pode_teclar = true
sprite_index = para_anda

Step:
Código:
if pode_teclar = true
{
if keyboard_check (vk_left) and not keyboard_check(vk_right)
{hspeed = -2.5}

if keyboard_check (vk_right) and not keyboard_check(vk_left)
{hspeed = 2.5}

if keyboard_check (vk_up) and not keyboard_check(vk_down)
{vspeed = -2.5}

if keyboard_check (vk_down) and not keyboard_check(vk_up)
{vspeed = 2.5}

if keyboard_check_pressed (vk_space)
{
hspeed = 0
vspeed = 0
pode_teclar = false
sprite_index = soca
alarm[0] = 30
}
}

if keyboard_check_released (vk_down and vk_up)
{vspeed = 0}

if keyboard_check_released (vk_left and vk_right)
{hspeed = 0}

Acho que não tem diferença, mas só pra constar estou usando o GM 7 (PRO, obviamente).

O código funciona perfeitamente quando o objeto está parado, andando para a direita, esquerda, cima OU baixo e quando está se movendo na diagonal cima + direita. Porém não funciona quando está movendo nas outras diagonais. Já tentei várias modificações mas nenhuma deu resultado. Agradeceria muito a quem me ajudasse (ou pelo menos tentasse ajudar) a resolver isso.

Obrigado desde já, até mais!

EdJr

Número de Mensagens : 20
Idade : 21
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.ceticismando.co.cc (Nada lá ainda)

Voltar ao Topo Ir em baixo

Re: Não soca enquanto anda

Mensagem por FMP em Sab 10 Jul 2010, 20:40

Primeiramente, tente escrever o seu código dessa forma (parte dele, pelo menos)
STEP EVENT
if pode_teclar = true
{
if keyboard_check (vk_left)
{hspeed = -2.5}
else
hspeed = 2.5

if keyboard_check (vk_up)
{vspeed = -2.5}
else
vspeed = 2.5

Essa forma de escrever facilita o reconhecimento de erros e é um pouco mais rápida.
Como assim diagonal cima + direita? Vc diz como o link do snes? Ele não possui um sprite na diagonal, mas pode andar dependendo dos botoes que vc aperte? Vou tentar essa sua engine aqui e dar uma olhada.

FMP

Número de Mensagens : 24
Idade : 27
Data de inscrição : 04/05/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Não soca enquanto anda

Mensagem por EdJr em Sab 10 Jul 2010, 21:16

FMP escreveu:Primeiramente, tente escrever o seu código dessa forma (parte dele, pelo menos)
STEP EVENT
if pode_teclar = true
{
if keyboard_check (vk_left)
{hspeed = -2.5}
else
hspeed = 2.5

if keyboard_check (vk_up)
{vspeed = -2.5}
else
vspeed = 2.5
Da maneira que você postou não funciona. O else não vai descobrir que tecla eu quero que seja apertada caso a primeira não seja. Só pra ter certeza eu testei, e realmente não funcionou.

FMP escreveu:
Como assim diagonal cima + direita? Vc diz como o link do snes? Ele não possui um sprite na diagonal, mas pode andar dependendo dos botoes que vc aperte?
É o movimento mais simples que poderia ser feito, apenas se movimentar sem modificar o sprite. O que eu quis dizer com aquilo é que, quando eu pressiono a barra de espaço enquanto estou pressionando os direcionais, ele funciona nas condições que te falei.

Testa aí, você vai entender o que eu quero dizer.

EdJr

Número de Mensagens : 20
Idade : 21
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.ceticismando.co.cc (Nada lá ainda)

Voltar ao Topo Ir em baixo

Re: Não soca enquanto anda

Mensagem por Conteúdo patrocinado Hoje à(s) 17:42


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