Últimos assuntos
» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

» Ajuda para mecanismo do jogo
por Willy Dom 16 Jul 2017, 15:54

Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220918 mensagens em 30411 assuntos

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!
avatar
EdJr

Data de inscrição : 29/05/2009
Número de Mensagens : 20
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário 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.
avatar
FMP

Data de inscrição : 04/05/2010
Número de Mensagens : 24
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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.
avatar
EdJr

Data de inscrição : 29/05/2009
Número de Mensagens : 20
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário http://www.ceticismando.co.cc (Nada lá ainda)

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