Entrar
Últimos assuntos
» Problemas com a caixa de diálogo, ela é pequena e as letras não cabem dentropor Rukasu777 Hoje à(s) 18:10
» Problemas com particulas
por RastaMaan Dom 12 maio 2024, 17:03
» Problema ao entrar por uma porta e voltar por ela
por aminaro Seg 06 maio 2024, 10:08
» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
pulo esquerda e direita
4 participantes
Página 1 de 1
pulo esquerda e direita
essa é minha principal dúvida: de acordo com o lado, o sprite mudar para o de pulo,o mesmo com o sprite de defesa q criei.
ai vai a informação de movimento(é q eu ñ queria mexer nos movimentos básicos,).
Information about object: object0
Sprite: parado
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>
Step Event:
execute code:
//Gravidade
if place_free(x,y+2){gravity=2}//se estiver livre de colisões 2 pixels abaixo, a gravidade será 1
else//senão
gravity=0//a gravidade vai ser 0
//limitando a velocidade vertical
if vspeed>12{vspeed=12}//se for maior que 15, retorna a 15
//MOVIMENTAÇÃO
//direita
if keyboard_check(vk_right)//se a seta direita for pressionada
{
sprite_index=andando//sprite vai ser "direita"
if place_free(x+5,y){x+=5}//se estiver livre de colisões 5 pixels a frente, andará 5 pixels a frente.
}
//esquerda
if keyboard_check(vk_left)//se a seta esquerda for pressionada
{
sprite_index=andando_left//sprite vai ser "esquerda"
if place_free(x-5,y){x-=5}//se estiver livre de colisões 5 pixels atras, voltará 5 pixels.
}
//Pulo
if keyboard_check_pressed(vk_up)//se a seta cima for pressionada
{
if!place_free(x,y+2){vspeed=-20}//se não estiver livre de colisões 2 pixels abaixo, a velocidade vertical vai ser -20 (cima)
}
Collision Event with object object1:
move in direction direction at most 12 till a contact with solid objects
set the vertical speed to 0
set the horizontal speed to 0
Key Press Event for D-key Key:
set the sprite to defesa with subimage 0 and speed 1
Key Release Event for <Left> Key:
set the sprite to parado_left with subimage 0 and speed 1
Key Release Event for <Right> Key:
set the sprite to parado with subimage 0 and speed 1
Key Release Event for D-key Key:
set the sprite to parado with subimage 0 and speed 1
De já agradeço,fallows!!!
ai vai a informação de movimento(é q eu ñ queria mexer nos movimentos básicos,).
Information about object: object0
Sprite: parado
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>
Step Event:
execute code:
//Gravidade
if place_free(x,y+2){gravity=2}//se estiver livre de colisões 2 pixels abaixo, a gravidade será 1
else//senão
gravity=0//a gravidade vai ser 0
//limitando a velocidade vertical
if vspeed>12{vspeed=12}//se for maior que 15, retorna a 15
//MOVIMENTAÇÃO
//direita
if keyboard_check(vk_right)//se a seta direita for pressionada
{
sprite_index=andando//sprite vai ser "direita"
if place_free(x+5,y){x+=5}//se estiver livre de colisões 5 pixels a frente, andará 5 pixels a frente.
}
//esquerda
if keyboard_check(vk_left)//se a seta esquerda for pressionada
{
sprite_index=andando_left//sprite vai ser "esquerda"
if place_free(x-5,y){x-=5}//se estiver livre de colisões 5 pixels atras, voltará 5 pixels.
}
//Pulo
if keyboard_check_pressed(vk_up)//se a seta cima for pressionada
{
if!place_free(x,y+2){vspeed=-20}//se não estiver livre de colisões 2 pixels abaixo, a velocidade vertical vai ser -20 (cima)
}
Collision Event with object object1:
move in direction direction at most 12 till a contact with solid objects
set the vertical speed to 0
set the horizontal speed to 0
Key Press Event for D-key Key:
set the sprite to defesa with subimage 0 and speed 1
Key Release Event for <Left> Key:
set the sprite to parado_left with subimage 0 and speed 1
Key Release Event for <Right> Key:
set the sprite to parado with subimage 0 and speed 1
Key Release Event for D-key Key:
set the sprite to parado with subimage 0 and speed 1
De já agradeço,fallows!!!
darth vader- Data de inscrição : 29/10/2009
Reputação : 0
Número de Mensagens : 85
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: pulo esquerda e direita
Olha,você quer que quando estiver para tal lado,mudar para o sprite de pulo nesse lado,certo? Se for,é muito simples cara. Basta apenas criar uma sprite para cada lado.
Ou você pode fazer o seguinte no código de pulo:
Tente isso.
Ou você pode fazer o seguinte no código de pulo:
- Código:
if keyboard_check_pressed(vk_up) && image_index=andando_left or image_index=parado_left//se a seta cima for pressionada e estiver na imagem do lado esquerdo andando ou do lado esquerdo parado
{
if!place_free(x,y+2){image_xscale=-1;vspeed=-20}//se não estiver livre de colisões 2 pixels abaixo, vai virar pro lado esquerdo e a velocidade vertical vai ser -20 (cima)
}
else
{
if keyboard_check_pressed(vk_up) && image_index=andando or image_index=parado//se a seta cima for pressionada e estiver na imagem do lado direito andando ou do lado direito parado
{
if!place_free(x,y+2){image_xscale=1;vspeed=-20}//se não estiver livre de colisões 2 pixels abaixo, vai virar pro lado direito e a velocidade vertical vai ser -20 (cima)
}
}
Tente isso.
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: pulo esquerda e direita
crie uma variavel com o nome "direita"
pense:
se direita = true e vspeed = 0
{
spr_index = andando_direita
}
se direita = false e vspeed = 0
{
spr_index = andando_esquerda
}
se direita = true e vspeed <> 0
{
spr_index = pulo_direita
}
se direita = false e vspeed <> 0
{
spr_index = pulo_esquerda
}
//entao os movimentos ficariam assim:
if keyboard_check(vk_right) and vspeed = 0//se a seta direita for pressionada
{
direita = true
sprite_index=andando//sprite vai ser "direita"
if place_free(x+5,y){x+=5}//se estiver livre de colisões 5 pixels a frente, andará 5 pixels a frente.
}
//esquerda
if keyboard_check(vk_left) and vspeed = 0//se a seta esquerda for pressionada
{
direita = false
sprite_index=andando_left//sprite vai ser "esquerda"
if place_free(x-5,y){x-=5}//se estiver livre de colisões 5 pixels atras, voltará 5 pixels.
}
//PULO
if keyboard_check_pressed(vk_up)//se a seta cima for pressionada
{
if!place_free(x,y+2){vspeed=-20}//se não estiver livre de colisões 2 pixels abaixo, a velocidade vertical vai ser -20 (cima)
if direita = true{sprite_index = "pulo_direita"
if direita = false{sprite_index = "pulo_esquerda"
}
pense:
se direita = true e vspeed = 0
{
spr_index = andando_direita
}
se direita = false e vspeed = 0
{
spr_index = andando_esquerda
}
se direita = true e vspeed <> 0
{
spr_index = pulo_direita
}
se direita = false e vspeed <> 0
{
spr_index = pulo_esquerda
}
//entao os movimentos ficariam assim:
if keyboard_check(vk_right) and vspeed = 0//se a seta direita for pressionada
{
direita = true
sprite_index=andando//sprite vai ser "direita"
if place_free(x+5,y){x+=5}//se estiver livre de colisões 5 pixels a frente, andará 5 pixels a frente.
}
//esquerda
if keyboard_check(vk_left) and vspeed = 0//se a seta esquerda for pressionada
{
direita = false
sprite_index=andando_left//sprite vai ser "esquerda"
if place_free(x-5,y){x-=5}//se estiver livre de colisões 5 pixels atras, voltará 5 pixels.
}
//PULO
if keyboard_check_pressed(vk_up)//se a seta cima for pressionada
{
if!place_free(x,y+2){vspeed=-20}//se não estiver livre de colisões 2 pixels abaixo, a velocidade vertical vai ser -20 (cima)
if direita = true{sprite_index = "pulo_direita"
if direita = false{sprite_index = "pulo_esquerda"
}
itallo- Games Ranking :
Notas recebidas : B - D
Data de inscrição : 26/08/2009
Reputação : 12
Número de Mensagens : 970
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: pulo esquerda e direita
bem, vou tentar...
Obko, posso fazer então a mesma coisa no sprite de defesa:
criar uma variavel (defesa) e substituir pelos sprites correpondentes.
sendo q a defesa é acionado pelo botão D.
Obko, posso fazer então a mesma coisa no sprite de defesa:
criar uma variavel (defesa) e substituir pelos sprites correpondentes.
sendo q a defesa é acionado pelo botão D.
darth vader- Data de inscrição : 29/10/2009
Reputação : 0
Número de Mensagens : 85
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: pulo esquerda e direita
Eu também aconselho você a fazer variáveis tanto "direita" quanto "esquerda" para evitar bugs no movimento se as duas teclas forem pressionadas. E você poderia criar um novo execute code no step event só com o código das animações.
Segue um exemplo:
Note o uso do break no meu código:
Quando ele é rodado no programa. é geralmente num laço (loop) for ou while, e é usado para sair daquele laço.
Mas nesse caso não há laço, então ele sai do Execute Code atual e volta para a sequência no evento (rodaria, por exemplo, o próximo Execute Code daquele evento).
EDIT: Nesse caso eu esqueci da existência do image_xscale, que inverte a imagem para você não precisar de sprites para ambos os lados, então meu código está otimizado para o GM LITE, que não tem essa função disponível...
Segue um exemplo:
- Código:
// sprite defendendo
if (defesa == true)
{
sprite_index = spr_defendendo;
break;
}
// sprites no chão
if (gravity == 0)
{
if (hspeed == 0)
{
if (esquerda)
sprite_index = spr_paradoEsquerda;
if (direita)
sprite_index = spr_paradoDireita;
}
else
{
if (esquerda)
sprite_index = spr_andandoEsquerda;
if (direita)
sprite_index = spr_andandoDireita;
}
break;
}
// sprites pulando
if (gravity != 0)
{
if (esquerda)
sprite_index = spr_pulandoEsquerda;
if (direita)
sprite_index = spr_pulandoDireita;
break;
}
Note o uso do break no meu código:
Quando ele é rodado no programa. é geralmente num laço (loop) for ou while, e é usado para sair daquele laço.
Mas nesse caso não há laço, então ele sai do Execute Code atual e volta para a sequência no evento (rodaria, por exemplo, o próximo Execute Code daquele evento).
EDIT: Nesse caso eu esqueci da existência do image_xscale, que inverte a imagem para você não precisar de sprites para ambos os lados, então meu código está otimizado para o GM LITE, que não tem essa função disponível...
Re: pulo esquerda e direita
Valeu, pessoal. Uma coisa q aprendi é q pra várias ações o bom mesmo é
usar variaveis.
é um grande passo pra mim como iniciante.
fallows!!!!
(me emocionei)
usar variaveis.
é um grande passo pra mim como iniciante.
fallows!!!!
(me emocionei)
darth vader- Data de inscrição : 29/10/2009
Reputação : 0
Número de Mensagens : 85
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» setas esquerda e direita nao funcionam
» Chegar perto pela direita e esquerda
» ajuda akie com o andar de direita e esquerda
» como que pula pra direita e pra esquerda sem codigo
» como atacar para esquerda e direita
» Chegar perto pela direita e esquerda
» ajuda akie com o andar de direita e esquerda
» como que pula pra direita e pra esquerda sem codigo
» como atacar para esquerda e direita
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|