Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
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
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos