Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Pulo: troca de sprites,variaveis e fim do pulo
Pulo: troca de sprites,variaveis e fim do pulo
Boa tarde , minha duvida é a seguinte , não consigo fazer o personagem executar a sprite de pulo ( consigo fazer pular ) enquanto sobe e a sprite enquanto cai , utilizei variaveis num evento create;
pulo = false
rasteira = false
e o codigo q tentei usar foi :
if (keyboard_check_pressed(vk_up)) and place_free(x,y+2)&&(vspeed=-15){
sprite_index = spr_soren_pulandoDir
}
porém não entendo como encaixar as variaveis , gostaria de ajuda também , para mudar a sprite para o outro lado também ; por exemplo pulei pra direita,sprite pra direita ; pulei pra esquerda , sprite pra esquerda.
Devo usar image_ ou sprite_index?
gostaria de dicas de como fazer
Grato
pulo = false
rasteira = false
e o codigo q tentei usar foi :
if (keyboard_check_pressed(vk_up)) and place_free(x,y+2)&&(vspeed=-15){
sprite_index = spr_soren_pulandoDir
}
porém não entendo como encaixar as variaveis , gostaria de ajuda também , para mudar a sprite para o outro lado também ; por exemplo pulei pra direita,sprite pra direita ; pulei pra esquerda , sprite pra esquerda.
Devo usar image_ ou sprite_index?
gostaria de dicas de como fazer
Grato
Re: Pulo: troca de sprites,variaveis e fim do pulo
Boa noite!
O essencial e você dar uma boa organizada nesse código.
Para fazer pulo da maneira correta trocando a imagem corretamente, seria bom você registrar os estágios e assim criar sua lógica.
No seu caso seria algo similar a isto, e e claro seria bom você adaptar a sua necessidade:
- EVENTO CREATE -
- EVENTO BEGIN STEP -
- EVENTO STEP -
Recomendo ver alguns tutoriais sobre Variáveis e organização de instruções no fórum para lhe auxiliar melhor! Abraço
O essencial e você dar uma boa organizada nesse código.
Para fazer pulo da maneira correta trocando a imagem corretamente, seria bom você registrar os estágios e assim criar sua lógica.
No seu caso seria algo similar a isto, e e claro seria bom você adaptar a sua necessidade:
- EVENTO CREATE -
Código: Selecionar todos
estado_pulo = "chao";
lado = "esquerda";
- EVENTO BEGIN STEP -
Código: Selecionar todos
if( vspeed < 0 ){
estado_pulo = "subindo"; // Estado se caso subindo no pulo.
}
if( vspeed > 0 ){
estado_pulo = "descendo"; // Estado se caso descendo no pulo.
}
if( vspeed == 0 && place_free( x, y + 1 ) ){
estado_pulo = "chao"; // Estado se estiver no chão
}
if( keyboard_check( vk_left ) ){ lado = "esquerda"; } // Define que está para esquerda se pressionar o botão esquerda
if( keyboard_check( vk_right ) ){ lado = "direita"; } // Define que está para direita se pressionar para direita
- EVENTO STEP -
Código: Selecionar todos
if(keyboard_check( vk_up ) && estado_pulo == "chao"){ // Se pressionar e estiver no chão
if( lado == "esquerda" ){ // Se virado para esquerda
sprite_index = spr_sprite_pular_esquerda;
} else { // Se virado para direita
sprite_index = spr_sprite_pular_direita;
}
vspeed = -15; // "Pula"
}
if( estado_pulo == "subindo" ){ image_single = 0; } // Se esta subindo, usa a imagem 0 ( Zero ) da sprite.
if( estado_pulo == "descendo" ){ image_single = 1; } // Se esta descendo, usa a imagem 1 ( Um ) da sprite.
if( estado_pulo == "chao" ){
// codigo para voltar ao estado inicial
}
Recomendo ver alguns tutoriais sobre Variáveis e organização de instruções no fórum para lhe auxiliar melhor! Abraço
- Meu site: http://tulionascimento.com.br
Re: Pulo: troca de sprites,variaveis e fim do pulo
Obrigado cara me ajudou bastante msm , vi poucos tutoriais de variaveis e ja fui me aventurar , consegui entender mais um pouco sobre variaveis
Re: Pulo: troca de sprites,variaveis e fim do pulo
Não tem de que, precisando também posso fazer uma engine para lhe auxiliar.
Até mais
Até mais
- Meu site: http://tulionascimento.com.br
Re: Pulo: troca de sprites,variaveis e fim do pulo
então cara, utilizei variaveis como voce me explicou tanto tem texto "" , quanto em numeros porém o meu personagem nao consegue "encontrar" o chão.
Mudei o keyboard_check pra keyboard_check_pressed pois ele estava pulando sozinho.
E também retirei o valor do codigo inserido no begin step:
deixei apenas o (x,y) .até ai ocorreu tudo certo ele está pulando de boa , porém não faz a troca de sprites e executa apenas a sprite_pulando_direita.
Mudei o keyboard_check pra keyboard_check_pressed pois ele estava pulando sozinho.
E também retirei o valor do codigo inserido no begin step:
Código: Selecionar todos
if( vspeed == 0 && place_free( x, y + 1 ) ){
estado_pulo = "chao"; // Estado se estiver no chão
Re: Pulo: troca de sprites,variaveis e fim do pulo
Você pode usar tambem:
Quanto as sprites, depende mto do seu jogo. Posso fazer uma engine para auxiliar melhor você. Qual e sua versão de Game Maker?
Código: Selecionar todos
// 0: Chao
// 1: Subindo
// 2: Descendo
// Esse codigo e mais direto, mas e uma boa alternativa para evitar o placefree nesse caso
estado_pulo = min(2,2+sign(vspeed))*(!!gravity);
switch(estado_pulo){
case 0: estado_pulo = "chao"; break;
case 1: estado_pulo = "subindo"; break;
case 2: estado_pulo = "descendo"; break;
}
- Meu site: http://tulionascimento.com.br
Re: Pulo: troca de sprites,variaveis e fim do pulo
Uso o GMS pro cara , eu consegui fazer agora usei o seguinte:
evento create>
andando=false;
noar=false;
lado=1;
step>
dei uma escavada no antigo fórum e consegui a explicação, mas se estiver disposto a fazer uma engine kkkk é sempre aceito ver codigos diferentes.
No fim eu nao estava conseguindo fazer a animação de queda, entao usei o if vspeed> 0 e funcionou.
evento create>
andando=false;
noar=false;
lado=1;
step>
Código: Selecionar todos
if (place_free(x,y+1)){noar=true;caindo=true;gravity=0.6;}//se tiver espaco embaixo, ativar a gravidade
else if !(place_free(x,y+1)){noar=false;caindo=false;gravity=0;}//se nao tiver espaco embaixo, desativar a gravidad
if (keyboard_check(vk_right)){andando=true;x+=7;lado=1;}image_speed= 0.5//andar pra direita
if (keyboard_check(vk_left)){andando=true;x-=7;lado=-1;}image_speed= 0.5//andar pra esquerda
if !(keyboard_check(vk_right))and!(keyboard_check(vk_left)){andando=false;}//checar variaveis
if (keyboard_check_pressed(vk_up))and(noar=false){vspeed-=9;}image_speed= 0.3//se nao estiver no ar, pular
//sprite
image_xscale=lado;//com isso nao e necessario usar sprites das duas direcoes do seu personagem, apenas a que esta virada para a direita!
if (noar=false)//se nao estiver no ar
{
if (andando=true){sprite_index=spr_soren_dir;}//mudar o sprite para o sprite dele andando
else if (andando=false){sprite_index=spr_soren_parado;}//mudar o sprite para o sprite dele parado
}
else if (noar=true)//se ele estiver no ar
{sprite_index=spr_soren_pulandoDir}//mudar para o sprite dele no ar
if vspeed>0
{
sprite_index=spr_soren_caindodir
}
No fim eu nao estava conseguindo fazer a animação de queda, entao usei o if vspeed> 0 e funcionou.
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante