Problema com Sprite

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

Problema com Sprite

Mensagem por Ripley em Qua 06 Fev 2013, 21:52

E ai galera

Tentem visualizar:

O jogador esta socando com a tecla "Z" e o sprite dele muda para o player_atacando
So que enquanto eu estou atacando se aperto alguma das teclas de movimento dele, por uma fração de nem um segundo o sprite muda para o player_andando e vota a ser o player_atacando, ele não se move nem nada.

Queria saber se tem alguma solução para que quando ele estivesse atacando, não acontece-se nada se apertasse os botões de movimento e o sprite continuasse de soco.
Tentei com duas Variaveis, mas não consegui.


Obrigado

Ripley

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

Voltar ao Topo Ir em baixo

Re: Problema com Sprite

Mensagem por Super Maker em Qua 06 Fev 2013, 22:07

Você precisa deixar bem claro na sua programação que você quer que seja tal sprite quando pressionar tal tecla.
Existe um conflito no seu código amigo e nesse caso é meio difícil ajudar sem ver.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problema com Sprite

Mensagem por vinians em Qua 06 Fev 2013, 22:18

Você pode criar um "tempo" para cada comando. Quando socar por exemplo, voce ativa uma variável "socando = true" e ativa um timer "alarm[0]=xxxx" que volta "socando = false". Pronto, agora basta você colocar um "and" nos IF´s das outras teclas assim "Se o player apertar "Left" E "socando == false" ele muda senao nao faz nada... Não vou criar o codigo todo pra você porque ajuda você aprender, mas a idéia seria esta.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Problema com Sprite

Mensagem por Ripley em Qua 06 Fev 2013, 22:22

Super Maker escreveu:Você precisa deixar bem claro na sua programação que você quer que seja tal sprite quando pressionar tal tecla.
Existe um conflito no seu código amigo e nesse caso é meio difícil ajudar sem ver.


Spoiler:

if keyboard_check(vk_right) and walk = true {
punch = false
sprite_index = spr_scott_correr
image_speed = 0.5
image_xscale = 1
x+=5
}

if keyboard_check(vk_left) and walk = true {
punch = false
sprite_index = spr_scott_correr
image_speed = 0.5
image_xscale= -1
x-=5
}

if keyboard_check(vk_up) and walk = true {
sprite_index = spr_scott_correr
image_speed = 0.5
y-=5
punch = false

}

if keyboard_check(vk_down) and walk = true {
sprite_index = spr_scott_correr
if image_number = 4 { image_number = 0 }
image_speed = 0.5
y+=5
punch = false
}

if keyboard_check(ord("Z")) and punch = true{
walk = false
sprite_index = spr_scott_atack
image_speed = 0.5
}

if keyboard_check_released(vk_right) {
sprite_index = spr_scott
punch = true
}

if keyboard_check_released(vk_left) {
sprite_index = spr_scott
punch = true
}

if keyboard_check_released(vk_up) {
sprite_index = spr_scott
punch = true
}

if keyboard_check_released(vk_down) {
sprite_index = spr_scott
punch = true
}

if keyboard_check_released(ord("Z")) {
sprite_index = spr_scott
walk = true
}

Ripley

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

Voltar ao Topo Ir em baixo

Re: Problema com Sprite

Mensagem por Ripley em Qua 06 Fev 2013, 22:25

vinians escreveu:Você pode criar um "tempo" para cada comando. Quando socar por exemplo, voce ativa uma variável "socando = true" e ativa um timer "alarm[0]=xxxx" que volta "socando = false". Pronto, agora basta você colocar um "and" nos IF´s das outras teclas assim "Se o player apertar "Left" E "socando == false" ele muda senao nao faz nada... Não vou criar o codigo todo pra você porque ajuda você aprender, mas a idéia seria esta.
Flws!

Cara qual a diferença de = pra == ?
Começei a pouco tempo, não faço ideia hauha

Queria um jeito sem Alarms Sad
O mesmo problema eu tenho quando eu aperto esquerda e direita ao mesmo tempo, ele fica parado


Última edição por Ripley em Qua 06 Fev 2013, 22:56, editado 1 vez(es)

Ripley

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

Voltar ao Topo Ir em baixo

Re: Problema com Sprite

Mensagem por vinians em Qua 06 Fev 2013, 22:55

Amigo, primeiro cuidado com o "post duplo". O "==" é usado para "comparar igualdade" entre os operandos, já o "=" é usado para atribuir valores para variáveis, mas o GM parece aceitar o "=" no lugar do "==" também, isso é porque GML tem alguma coisa de raizes da linguagem C.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: Problema com Sprite

Mensagem por Super Maker em Qua 06 Fev 2013, 22:58

ta vendo esses dois carinhas aqui? → walk = true punch = false
A culpa é deles...
Eles server pra indicar qual evento ta sendo executado no momento, ótimo pra evitar conflitos e você não ta sabendo usar eles. Você ta trocando as posições e as vezes colocando onde não precisa.
Esse operador "=" é de atribuições e esse de igualdade "==".

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problema com Sprite

Mensagem por Thyago em Qui 07 Fev 2013, 00:25

.Para não usar alarm você pode fazer assim

em create:
Código:
socando=false;
em step:
Código:
if(keyboard_check_pressed(ord('Z') and socando=false){
socando=room_speed;
}
socando=max(0,socando-1)

if(socando>0){
sprite_index=sprite_socando;
}
else
{
sprite_index=sprite_parado;
}

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Problema com Sprite

Mensagem por Conteúdo patrocinado Hoje à(s) 18:04


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