Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 14:07
Oi, sou novo no forum e novo com o GMS, gostaria de pedir uma ajuda, estou desenvolvendo um game, mas estou tendo dificuldades com a movimentaçao...
gostaria que meu personagem agachase com um botao, e com o mesmo botao ele levantase, igual no jogo metal gear solid, mas nao sei o codigo pra que isso funcione
Como faço para que 1 botao só seja 2 comandos ?
alguem pode mi ajudar ?
desde já grato pela ajuda!
gostaria que meu personagem agachase com um botao, e com o mesmo botao ele levantase, igual no jogo metal gear solid, mas nao sei o codigo pra que isso funcione
Como faço para que 1 botao só seja 2 comandos ?
alguem pode mi ajudar ?
desde já grato pela ajuda!
- Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :x 0
x 0
x 0
Reputação : 147
Prêmios: 0
: 0
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 14:26
crie uma variavel, e, quando voce apertar o botao de abaixar coloque variavel=!variavel
assim, se variavel = true, ele esta abaixado.
se variavel = false, ele esta em pe.
assim, se variavel = true, ele esta abaixado.
se variavel = false, ele esta em pe.
- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 14:34
De uma maneira simples você pode fazer assim:
if keyboard_check_pressed(vk_space)
{
if agachado = 0
{
agachado = 1
exit
}
if agachado = 1
{
agachado = 0
exit
}
}
Basicamente, quando você clicar na barra de espaço ele vai conferir se o personagem já ta agachado ou não. Essa é a maneira que conheço, talvez exista alguma mais simples.
Convido a dar uma olhada no meu site, talvez tenha algo útil ;)
if keyboard_check_pressed(vk_space)
{
if agachado = 0
{
agachado = 1
exit
}
if agachado = 1
{
agachado = 0
exit
}
}
Basicamente, quando você clicar na barra de espaço ele vai conferir se o personagem já ta agachado ou não. Essa é a maneira que conheço, talvez exista alguma mais simples.
Convido a dar uma olhada no meu site, talvez tenha algo útil ;)
- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 14:35
@Isaque Onix escreveu:crie uma variavel, e, quando voce apertar o botao de abaixar coloque variavel=!variavel
assim, se variavel = true, ele esta abaixado.
se variavel = false, ele esta em pe.
Pois é, existe um jeito bem mais simples então

- Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :x 0
x 0
x 0
Reputação : 147
Prêmios: 0
: 0
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 14:52
hehe faz parte, vivendo e aprendendo ;)
[edit]
bom, só pra lembrar, tem que ser o keyboard_check_pressed, se não, ele vai ficar levantando e abaixando varias vezes seguidas
[edit]
bom, só pra lembrar, tem que ser o keyboard_check_pressed, se não, ele vai ficar levantando e abaixando varias vezes seguidas
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 15:14
Obrigado pelas respostas, ainda estou tentando... uma hora sai 

- Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :x 0
x 0
x 0
Reputação : 147
Prêmios: 0
: 0
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 15:31
no evento create:
- Código:
baixo=false
_sprite=-1
- Código:
if(keyboard_check_pressed(vk_space)){baixo=!baixo}
- Código:
if(baixo=true){_sprite=SPRITE_ABAIXADO}else{_sprite=SPRITE_EM_PE}
draw_sprite(_sprite,0,x,y)
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 15:51
//Agachado
//Crouch Positions
if sprite_index = HeroStandRight and keyboard_check_pressed(vk_control){
sprite_index = RightCrouch;
Crouch = 1;
}
if sprite_index = HeroStandLeft and keyboard_check_pressed(vk_control){
sprite_index = LeftCrouch;
Crouch = 1;
}
if sprite_index = HeroStandUp and keyboard_check_pressed(vk_control){
sprite_index = UpCrouch;
Crouch = 1;
}
if sprite_index = HeroStand and keyboard_check_pressed(vk_control){
sprite_index = DownCrouch;
Crouch = 1;
}
eu so consigo fazer ele agachar se for um outro botao como no exemplo abaixo caso seja o mesmo, ele meio que da conflito
if Crouch=1 and keyboard_check_pressed(vk_space){
sprite_index = HeroStand;
Crouch = 0;
}
como que posso colocar no mesmo botao ? desculpa pela ignorancia , e que sou noob mesmo
//Crouch Positions
if sprite_index = HeroStandRight and keyboard_check_pressed(vk_control){
sprite_index = RightCrouch;
Crouch = 1;
}
if sprite_index = HeroStandLeft and keyboard_check_pressed(vk_control){
sprite_index = LeftCrouch;
Crouch = 1;
}
if sprite_index = HeroStandUp and keyboard_check_pressed(vk_control){
sprite_index = UpCrouch;
Crouch = 1;
}
if sprite_index = HeroStand and keyboard_check_pressed(vk_control){
sprite_index = DownCrouch;
Crouch = 1;
}
eu so consigo fazer ele agachar se for um outro botao como no exemplo abaixo caso seja o mesmo, ele meio que da conflito
if Crouch=1 and keyboard_check_pressed(vk_space){
sprite_index = HeroStand;
Crouch = 0;
}
como que posso colocar no mesmo botao ? desculpa pela ignorancia , e que sou noob mesmo

- Ranking :
Data de inscrição : 16/01/2014
Número de Mensagens : 314
Insígnias de JAM :x 0
x 1
x 0
Reputação : 31
Prêmios: 0
: 1
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 16:07
Acho que acontece esse erre pois os teclados geralmente possuem 2 botões CTRL, verifique o outro e vê se ele funciona.. Aconteceu um erro semelhante comigo quando eu queria usar os numerais, pois os teclados geralmente possuem 2 locais para alojar os num pad.. Mas acho que é esse o seu erro flw.
- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 16:11
Tem algum código depois disso?
if Crouch=1 and keyboard_check_pressed(vk_space){
sprite_index = HeroStand;
Crouch = 0;
}
Se tiver, você tem que colocar "exit" depois de "crouch = 0", se não dá conflito.
if Crouch=1 and keyboard_check_pressed(vk_space){
sprite_index = HeroStand;
Crouch = 0;
}
Se tiver, você tem que colocar "exit" depois de "crouch = 0", se não dá conflito.
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 16:19
Não, so tem o resto das animaçoes
//Var
Right = 0;
Up = 0;
Left = 0;
Down =0
Crouch = 0;
//animation
//Direita
if keyboard_check(ord("D"))
{
sprite_index = RunRight;
image_speed = 0.2;
Right = 1;
}
if keyboard_check_released(ord("D"))
{
sprite_index = HeroStandRight;
}
//Esquerda
if keyboard_check(ord("A"))
{
sprite_index = RunLeft;
image_speed = 0.2;
Left = 1;
}
if keyboard_check_released(ord("A"))
{
sprite_index = HeroStandLeft;
}
//Acima
if keyboard_check(ord("W"))
{
sprite_index = RunUp;
image_speed = 0.2;
Up = 1;
}
if keyboard_check_released(ord("W"))
{
sprite_index = HeroStandUp;
}
//Abaixo
if keyboard_check(ord("S"))
{
sprite_index = RunDown;
image_speed = 0.2;
Down = 1;
}
if keyboard_check_released(ord("S"))
{
sprite_index = HeroStand;
}
//Agachado
//Crouch Positions
if sprite_index = HeroStandRight and keyboard_check_pressed(vk_control){
sprite_index = RightCrouch;
Crouch = 1;
}
if sprite_index = HeroStandLeft and keyboard_check_pressed(vk_control){
sprite_index = LeftCrouch;
Crouch = 1;
}
if sprite_index = HeroStandUp and keyboard_check_pressed(vk_control){
sprite_index = UpCrouch;
Crouch = 1;
}
if sprite_index = HeroStand and keyboard_check_pressed(vk_control){
sprite_index = DownCrouch;
Crouch = 1;
}
//Var
Right = 0;
Up = 0;
Left = 0;
Down =0
Crouch = 0;
//animation
//Direita
if keyboard_check(ord("D"))
{
sprite_index = RunRight;
image_speed = 0.2;
Right = 1;
}
if keyboard_check_released(ord("D"))
{
sprite_index = HeroStandRight;
}
//Esquerda
if keyboard_check(ord("A"))
{
sprite_index = RunLeft;
image_speed = 0.2;
Left = 1;
}
if keyboard_check_released(ord("A"))
{
sprite_index = HeroStandLeft;
}
//Acima
if keyboard_check(ord("W"))
{
sprite_index = RunUp;
image_speed = 0.2;
Up = 1;
}
if keyboard_check_released(ord("W"))
{
sprite_index = HeroStandUp;
}
//Abaixo
if keyboard_check(ord("S"))
{
sprite_index = RunDown;
image_speed = 0.2;
Down = 1;
}
if keyboard_check_released(ord("S"))
{
sprite_index = HeroStand;
}
//Agachado
//Crouch Positions
if sprite_index = HeroStandRight and keyboard_check_pressed(vk_control){
sprite_index = RightCrouch;
Crouch = 1;
}
if sprite_index = HeroStandLeft and keyboard_check_pressed(vk_control){
sprite_index = LeftCrouch;
Crouch = 1;
}
if sprite_index = HeroStandUp and keyboard_check_pressed(vk_control){
sprite_index = UpCrouch;
Crouch = 1;
}
if sprite_index = HeroStand and keyboard_check_pressed(vk_control){
sprite_index = DownCrouch;
Crouch = 1;
}
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 16:22
caralho veioo era isso mesmo, faltou colocar o Exit ! , agora esta respondendo como eu queria !!
if sprite_index = HeroStand and keyboard_check_pressed(vk_control){
sprite_index = DownCrouch;
Crouch = 1;
exit
}
if Crouch = 1 and sprite_index = DownCrouch and keyboard_check_pressed(vk_control){
sprite_index = HeroStand;
Crouch = 0;
exit
}
Funciono!!! Obrigadao!!
if sprite_index = HeroStand and keyboard_check_pressed(vk_control){
sprite_index = DownCrouch;
Crouch = 1;
exit
}
if Crouch = 1 and sprite_index = DownCrouch and keyboard_check_pressed(vk_control){
sprite_index = HeroStand;
Crouch = 0;
exit
}
Funciono!!! Obrigadao!!
- Ranking :
Data de inscrição : 16/01/2014
Número de Mensagens : 314
Insígnias de JAM :x 0
x 1
x 0
Reputação : 31
Prêmios: 0
: 1
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 16:29
Você também poderia usar o Else ao inves de exit? Desconheço essa função no gamemaker.
- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 16:52
@Lighter escreveu:Você também poderia usar o Else ao inves de exit? Desconheço essa função no gamemaker.
Isso eu descobri na tentativa e erro. Por exemplo:
if keyboard_check_pressed(vk_space) && crouch = 0
{
crouch = 1
}
if if keyboard_check_pressed(vk_space) && crouch = 1
{
crouch = 0
}
Quando eu tentava fazer isso, aparentemente um clique no space ativava os dois comandos, isso porque o segundo if vira verdadeiro quando o primeiro é ativado. Colocando "exit" no primeiro e no segundo ele para de rodar o programa e não ativa os dois comandos.
- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 16:53
@Pegore escreveu:caralho veioo era isso mesmo, faltou colocar o Exit ! , agora esta respondendo como eu queria !!
if sprite_index = HeroStand and keyboard_check_pressed(vk_control){
sprite_index = DownCrouch;
Crouch = 1;
exit
}
if Crouch = 1 and sprite_index = DownCrouch and keyboard_check_pressed(vk_control){
sprite_index = HeroStand;
Crouch = 0;
exit
}
Funciono!!! Obrigadao!!
De nada

- Ranking :
Data de inscrição : 16/01/2014
Número de Mensagens : 314
Insígnias de JAM :x 0
x 1
x 0
Reputação : 31
Prêmios: 0
: 1
: 0
Re: Ajuda para se Manter agachado ^^
em Qui 14 Ago 2014, 17:14
@matheusco escreveu:@Lighter escreveu:Você também poderia usar o Else ao inves de exit? Desconheço essa função no gamemaker.
Isso eu descobri na tentativa e erro. Por exemplo:
if keyboard_check_pressed(vk_space) && crouch = 0
{
crouch = 1
}
if if keyboard_check_pressed(vk_space) && crouch = 1
{
crouch = 0
}
Quando eu tentava fazer isso, aparentemente um clique no space ativava os dois comandos, isso porque o segundo if vira verdadeiro quando o primeiro é ativado. Colocando "exit" no primeiro e no segundo ele para de rodar o programa e não ativa os dois comandos.
Pois é, testei os códigos com else e depois com exit, funcionaram normal, só quando eu não uso o exit nem else buga como relato o autor do tópico flw!
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum