por que a velocidade nao diminui??

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

por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Ter 03 Set 2013, 16:59

tenho um objeto quando aperto um botao ele deveria dar um soco mas esse soco ta rapido demais ja tentei os seguintes codigos

if keyboard_check_pressed(SF) {sprite_index=spsocao
if sprite_index= spsocao image_speed=0.27} ja tentei assim

e assim

if keyboard_check_pressed(SF) {sprite_index=spsocao image_speed=0.27}
isto esta no step ja coloquei no creat tambem pra ver se mudava
tou achando q tenho q criar um objeto soco e colocar uma veloxidade nele
ou sera q da pra mim criar meu play com um objeto unico so chamando as sprites?

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por CRP-Max em Ter 03 Set 2013, 17:41

Você tem que separar os comandos com ";".
No step:
Código:
if keyboard_check_pressed(SF) {sprite_index=spsocao;image_speed=0.27}
O que significa o SF, seria uma variável contendo dados de uma tecla?
Tipo assim?
No create:
Código:
SF=ord(A) // aqui o soco forte esta definido para a tecla A, nota: sempre defina as teclas em maiúsculo
Usando desta forma sei que funciona.
E não se esqueça de voltar a imagem para a velocidade certa, ou todas as animações deste objeto, ficarão nesta ultima velocidade.

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Ter 03 Set 2013, 17:56

//Definindo as teclas (defini somente as teclas que serão usadas)
direita = vk_right;
baixo = vk_down;
cima = vk_up;
esquerda = vk_left;

SR = ord('A');
SM = ord('S');
SF = ord('D');
CR = ord('Z');
CM = ord('X');
CF = ord('C');


e la no step ta assim
if keyboard_check_pressed(SF) {sprite_index=spsocao
if sprite_index= spsocao image_speed=0.27} else image_speed=0.9 antes tava daquele geito q eu postei acima o soco ta extremamente rapido ja coloquei ate image speed 0.50 e nada

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por ruben.23 em Ter 03 Set 2013, 19:34

Num sería melhor assim não:
if keyboard_check_pressed(ord('d'))
{
image_speed = 0.27
sprite_index = spr_socão
}
se num funcionar avisa ae!


Última edição por ruben.23 em Ter 03 Set 2013, 19:40, editado 1 vez(es) (Razão : corrigindo erros)

ruben.23

Número de Mensagens : 212
Data de inscrição : 29/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Ter 03 Set 2013, 20:58

ainda nao funcionou vou colocar meu codigo todo aqui

create
if image_index=wolverineparado image_speed=0.9 // velocidade parado

//teclas usadas no jogo

direita = vk_right;
baixo = vk_down;
cima = vk_up;
esquerda = vk_left;

SR = ord('A');
SM = ord('S');
SF = ord('D');
CR = ord('Z');
CM = ord('X');
CF = ord('C');

step

// andar pra frente e pra tras
// e chamar animaçao de andar frente tras
//velocidade sprites pra frent pra tras
if(!keyboard_check(vk_down)){
if keyboard_check(vk_left){x-=5.5 sprite_index=anda_tras }
if keyboard_check(vk_right){x+=7 sprite_index=anda_frent}

if sprite_index = anda_tras {//anda tras animaçao
image_speed=0.5}
if sprite_index = anda_frentt {// anda frente animaçao
image_speed=0.5}
}
else{ sprite_index=abaixa image_index = 2 }
if keyboard_check_released(baixo)sprite_index=splevanta

//socao abaixado

if keyboard_check_pressed(SF)and sprite_index=abaixa
{
image_speed = 0.27
sprite_index = spsocao
}


nokey

sprite_index=wolverineparado image_speed=0.9

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Ter 03 Set 2013, 21:18

ainda nao funcionou vou colocar meu codigo todo aqui

create
if image_index=wolverineparado image_speed=0.9 // velocidade parado

//teclas usadas no jogo

direita = vk_right;
baixo = vk_down;
cima = vk_up;
esquerda = vk_left;

SR = ord('A');
SM = ord('S');
SF = ord('D');
CR = ord('Z');
CM = ord('X');
CF = ord('C');

step

// andar pra frente e pra tras
// e chamar animaçao de andar frente tras
//velocidade sprites pra frent pra tras
if(!keyboard_check(vk_down)){
if keyboard_check(vk_left){x-=5.5 sprite_index=anda_tras }
if keyboard_check(vk_right){x+=7 sprite_index=anda_frent}

if sprite_index = anda_tras {//anda tras animaçao
image_speed=0.5}
if sprite_index = anda_frentt {// anda frente animaçao
image_speed=0.5}
}
else{ sprite_index=abaixa image_index = 2 }
if keyboard_check_released(baixo)sprite_index=splevanta

//socao abaixado

if keyboard_check_pressed(SF)and sprite_index=abaixa
{
image_speed = 0.27
sprite_index = spsocao
}


nokey

sprite_index=wolverineparado image_speed=0.9

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Ter 03 Set 2013, 21:20

ainda nao funcionou vou colocar meu codigo todo aqui

create
if image_index=wolverineparado image_speed=0.9 // velocidade parado

//teclas usadas no jogo

direita = vk_right;
baixo = vk_down;
cima = vk_up;
esquerda = vk_left;

SR = ord('A');
SM = ord('S');
SF = ord('D');
CR = ord('Z');
CM = ord('X');
CF = ord('C');

step

// andar pra frente e pra tras
// e chamar animaçao de andar frente tras
//velocidade sprites pra frent pra tras
if(!keyboard_check(vk_down)){
if keyboard_check(vk_left){x-=5.5 sprite_index=anda_tras }
if keyboard_check(vk_right){x+=7 sprite_index=anda_frent}

if sprite_index = anda_tras {//anda tras animaçao
image_speed=0.5}
if sprite_index = anda_frentt {// anda frente animaçao
image_speed=0.5}
}
else{ sprite_index=abaixa image_index = 2 }
if keyboard_check_released(baixo)sprite_index=splevanta

//socao abaixado

if keyboard_check_pressed(SF)and sprite_index=abaixa
{
image_speed = 0.27
sprite_index = spsocao
}


nokey

sprite_index=wolverineparado image_speed=0.9

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por ruben.23 em Qua 04 Set 2013, 12:44

Veja bem! se vc quer que seu personagem ande pra frente usando variaveis definidas no create vc deve defini las no evento create da seguinte forma:
direita = true// direita igual a true porque é a direção inicial do personagem
parado = true// pois ele inicia no estado parado
velocidade = 6// pois é a velocidade de deslocamento dele.
agora no step:
if keyboard_check(vk_right)
{
direita = true
if place_free(x+velocidade,y) {
x += velocidade
parado = false
}
}
//se a tecla direita foi pressionada, direita igual a verdadeiro e se estiver livre de obstaculos adicionar avançar 6(velocidade = 6) pixels para frente(ou seja na linha do x) e x + ou igual a velocidade parado passa a ser falso.
//o direcional direita só será possível se direita for igual a true.
para a esquerda é só setar direita igual a false ao em ves de true e usar o sinal de - em ves + .
se para fazer o objeto ir para esquerda e para direita foi necessario usar as variavei parado, direita e velocidade, para que nosso objeto ataque é preciso criar uma nova veriavel a qual vc pode chamar de socao.
para fazer isso no create escreva:
socao = false
//agora no step coloque:
if (keyboard_check_pressed(ord('C')))
{
if socao = false
{
socao = true
}
}
agora insira um evento alarme e nele coloque esse codigo socao = false e no evento step complemente o assim:

if keyboard_check(vk_right)
{
direita = true
if place_free(x+velocidade,y) {
x += velocidade
parado = false
alarm [0] = 15//ele execultara em 15 frames a ação do soco
}
}
Bom acho que é isso! Se cometi algum erro por favor me corrijam! ainda sou iniciante, mas tento ajudar mesmo assim!

ruben.23

Número de Mensagens : 212
Data de inscrição : 29/05/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por mleoni em Qua 04 Set 2013, 12:54

Seu jogo está muito confuso,te aconselho a ler este tutorial --> http://gmbr.forumeiros.com/t14340-tutorial-maquina-de-estados-finitos?highlight=estados+finitos
E separar os estados do seu personagem,assim facilitaria muito pra você.Não identifiquei o erro,mas organizei um pouco seu código :
Código:

// andar pra frente e pra tras
// e chamar animaçao de andar frente tras
//velocidade sprites pra frent pra tras
if(!keyboard_check(vk_down))
{
  if keyboard_check(vk_left){
  x-=5.5 sprite_index=anda_tras;
  image_speed=0.5;
  }
  if keyboard_check(vk_right){
  x+=7 sprite_index=anda_frent;
  image_speed=0.5;
  }
}
else
{
sprite_index=abaixa;
image_index = 2;
}
if keyboard_check_released(baixo){sprite_index=splevanta};

//socao abaixado

if keyboard_check_pressed(SF)and keyboard_check_pressed(abaixa)
{
image_speed = 0.2;
sprite_index = spsocao;
}

if keyboard_check_pressed(vk_nokey)
{
sprite_index=wolverineparado;
image_speed=0.9;
};
Se não der certo, manda a engine do jogo que será mais facil arrumar.

mleoni

Número de Mensagens : 81
Idade : 21
Data de inscrição : 06/03/2013
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Qua 04 Set 2013, 15:09

nao deu certo Sad to lendo o tutorial aqui da maquina de estados nossa parece muito complicado

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por rickelme.dias em Qua 04 Set 2013, 15:20

ola tenta diminuir mais ainda o image_speed... pode ser isso coloque sei la tipo: 0.0.5 ou algo do tipo.

rickelme.dias

Número de Mensagens : 230
Idade : 16
Data de inscrição : 07/02/2013
Reputação : 34
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://rickelmegt.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Qua 04 Set 2013, 16:05



if keyboard_check_pressed(SF)
{
sprite_index = spsocao ; image_speed = 0.0.2;

};


ja coloquei isso tambem

if keyboard_check_pressed(SF)
{
sprite_index = spsocao ; image_speed = 0.1;

};

ja inverti a posiçao dos codigos ja coloquei no create ja fiz de tudo nao to entendendo por q ta acontecndo isso um simples soco sai na velocidade da luz quando coloquei o codigo acima q o meloni me deu nem mexeu nao sei se ta dando um soco na velocidade da luz ou se ta simplismente parado e nao ta funcionando

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por rickelme.dias em Qua 04 Set 2013, 16:06

mais são todos as sprites que estão assim? se sim coloque no create também Smile

rickelme.dias

Número de Mensagens : 230
Idade : 16
Data de inscrição : 07/02/2013
Reputação : 34
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://rickelmegt.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Qua 04 Set 2013, 16:09

as outras estao normais como no codigo la emcima so esse soco q nao sai na velocidade q eu quero eu ate tirei se for so abaixado dar o soco deixei em pe mesmo para ver se era alguma intereferencia disso mas nao era

o codigo esta exatamente assim  ate tirei o nokey



step
Código:
if keyboard_check_pressed(vk_nokey)
{sprite_index=wolverineparado image_speed=0.9};

// andar pra frente e pra tras
// e chamar animaçao de andar frente tras
//velocidade sprites pra frent pra tras
if(!keyboard_check(vk_down)){
if keyboard_check(vk_left){x-=5.5  sprite_index=andafrente }
if keyboard_check(vk_right){x+=7  sprite_index=andatras}

if sprite_index = andatras {//anda frente animaçao
image_speed=0.5}
if sprite_index = andafrente {// anda tras animaçao
image_speed=0.5}
}
else
{ sprite_index=spabaixa image_index = 2  }
if keyboard_check_released(vk_down)sprite_index=splevanta

if keyboard_check_pressed(SF)
{
sprite_index = spsocao ; image_speed = 0.25;

};

create

Código:
// velocidade wolverine parado

//teclas usadas no jogo

direita = vk_right;
baixo = vk_down;
cima = vk_up;
esquerda = vk_left;

SR = ord('A');
SM = ord('S');
SF = ord('D');
CR = ord('Z');
CM = ord('X');
CF = ord('C');


Última edição por reinaldoferreira em Qui 05 Set 2013, 19:17, editado 1 vez(es)

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por CRP-Max em Qua 04 Set 2013, 16:27

Você esta colocando os dois códigos no create?
Veja, a ideia é que o create seja executado apenas uma vez na fase, se você colocar alguma checagem tipo keyboard, ela só vale na criação do objeto e não executa mais, coloque a primeira parte de códigos no step.

CRP-Max

Ranking : Nota C
Número de Mensagens : 819
Idade : 41
Data de inscrição : 28/10/2008
Notas recebidas : C
Reputação : 29
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por reinaldoferreira em Qua 04 Set 2013, 16:44

nao eu coloquei errado aqui o codigo ta no step no creat so tem as variaveis



step
Código:
if keyboard_check_pressed(vk_nokey)
{sprite_index=wolverineparado image_speed=0.9};

// andar pra frente e pra tras
// e chamar animaçao de andar frente tras
//velocidade sprites pra frent pra tras
if(!keyboard_check(vk_down)){
if keyboard_check(vk_left){x-=5.5  sprite_index=andafrente }
if keyboard_check(vk_right){x+=7  sprite_index=andatras}

if sprite_index = andatras {//anda frente animaçao
image_speed=0.5}
if sprite_index = andafrente {// anda tras animaçao
image_speed=0.5}
}
else
{ sprite_index=spabaixa image_index = 2  }
if keyboard_check_released(vk_down)sprite_index=splevanta

if keyboard_check_pressed(SF)
{
sprite_index = spsocao ; image_speed = 0.25;

};
create
Código:
 // velocidade wolverine parado

//teclas usadas no jogo

direita = vk_right;
baixo = vk_down;
cima = vk_up;
esquerda = vk_left;

SR = ord('A');
SM = ord('S');
SF = ord('D');
CR = ord('Z');
CM = ord('X');
CF = ord('C');

tenho duas animaçoes q quando abre a room elas iniciam
objetoanimaçao1

no evento animation end
Código:
if objetoanimaçao1 image_index=34

instance_create(x-0,y-0,objetoanimaçaoS)


objetoanimaçaoS

Código:
instance_destroy()


a velocidade da minha room sao de 30 fps
tenho um outro objeto na room junto com o meu wolverine a veloxidade dele é image_speed=0.5 no step nem mexi nele ainda
oq pode ta interfirindo nesse soco do meu play nao entendo ta tudo certo diacordo com oq eu pesquisei


Código:












Última edição por reinaldoferreira em Qui 05 Set 2013, 01:05, editado 1 vez(es) (Razão : acrecimos)

reinaldoferreira

Número de Mensagens : 65
Data de inscrição : 03/09/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: por que a velocidade nao diminui??

Mensagem por Conteúdo patrocinado Hoje à(s) 14:36


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