quarta-feira, 10 de junho de 2015

Código de movimento - Game Maker

Atendendo a todos os pedidos da galera vou escrever algumas mini explicações de todos os códigos usados nos tutorias de game maker.
Pra começar vou explicar como funciona o código de movimento com aceleração usado no tutorial de game de plataforma.

1. Definindo a variável de aceleração e desaceleração 

No evento create adicionaremos as duas
velocidade=0 // Se estiver em zero o objeto não fará o movimento. (Meio que isso tá bem óbvio) 
Freio=0.2 // A força da frenagem a ser aplicada na velocidade



2. Programando o movimento

No evento step, vamos programar as duas variáveis do create para funcionar com a ação de movimento X do objeto.


// Esse código é a aplicação da variável freio na variável de velocidade.

// Se o movimento for acima de zero a aplicação do freio será reduzida para sua numeração neutra.
if velocidade<0{
velocidade+=freio
if velocidade>=0{
velocidade=0;{sprite_index= ???? ;image_speed=0.3}}}// Caso seu objeto tenha animação de movimento, adicione o nome do sprite de pose para que o objeto fique parado. (Basta trocar ???? pelo nome do sprite)

// Se o movimento for abaixo de zero a aplicação do freio será aumentada para sua numeração neutra.
if velocidade>0{
velocidade-=freio
if velocidade<=0{
velocidade=0;{sprite_index= ???? ;image_speed=0.3}}} // Caso seu objeto tenha animação de movimento, adicione o nome do sprite de pose para que o objeto fique parado. (Basta trocar ???? pelo nome do sprite)

//Esse código vai aplicar o movimento velocidade a ação X do objeto, fazendo com que vá para direita ou esquerda com sua aplicação na velocidade limitada.

x+=velocidade  //Vai aplicar o movimento para esquerda.
if velocidade<-6{velocidade=-6} // Vai limitar a aplicação do movimento para esquerda. (Não pode ser maior que -6)
x+=velocidade // Vai aplicar o movimento para direita.
if velocidade>6{velocidade=6} // Vai limitar a aplicação do movimento para direita. (Não pode ser maior que 6)

Você também pode acrescentar a velocidade na animação do personagem andando ou correndo usando a mesma programação de limitação da velocidade.


if velocidade >0.1{sprite_index=Spr_Andar;image_speed=0.2}
if velocidade >3 {sprite_index=Spr_Andar;image_speed=0.3}
if velocidade >4 {sprite_index=Spr_Andar;image_speed=0.4}
if velocidade >5 {sprite_index=Spr_Correr;image_speed=0.5}

if velocidade <-0.1{sprite_index=Spr_Andar;image_speed=0.2}
if velocidade <-3 {sprite_index=Spr_Andar;image_speed=0.3}
if velocidade <-4 {sprite_index=Spr_Andar;image_speed=0.4}
if velocidade <-5 {sprite_index=Spr_Correr;image_speed=0.5}


3. Dando o comando para o personagem andar.

É a parte mais simples de se fazer. apenas acrescentar a variável um aumento positivo ou negativo nos botões de ir para esquerda ou direita. Depende muito do gosto do programador a configuração dos botões para seu jogo! Então vou deixar apenas o código.

//Para direita
image_xscale=+1 // Inverter o objeto para direita
velocidade+=1  // adicionar a variável de velocidade uma contagem positiva crescente

//Para esquerda
image_xscale=-1 // Inverter o objeto para esquerda
velocidade-=1  // adicionar a variável de velocidade uma contagem negativa decrescente

Pronta galera, é só isso espero que tenham entendido as explicações acima. Testem e mandem pela pagina Aniteg duvidas caso o código não esteja funcionado. (Impossível não funcionar)


17 comentários:

  1. eu sempre vejo esses tutoriais já e a segunda vez que vejo o seu e acho o maior erro você não usar as ferramentas do próprio game make uma ajuda visual pra quem não entende nada de programação da uma grande ajuda, mesmo assim vc consegue fazer um ótimo tutorial simples e direto

    ResponderExcluir
  2. Meu personagem não para na posição inicial, continua pulando !

    ResponderExcluir
  3. O meu personagem para um lado está andando mais rápido e para outro mais lento, alguém sabe como arrumar?

    ResponderExcluir
  4. valeu cara você ajudou bastante

    ResponderExcluir
  5. acho q a informação q ele deu ta ate boa pra quem quer apenas se mover no game, na real dps de aprender aqui e sair daqui e aprender coisas n explicada aqui por exemplo como colisão por ex, aqui n diz tudo mais a proposta do guaxinim ele cumpriu querendo ou n sendo leigo ou o código esta ae e bem explicado

    ResponderExcluir
  6. nao inpota o codigo que eu coloque meu personagem nao anda

    ResponderExcluir
  7. eu não comssigo botar a tecla pra ele ir pra um lado ou pra outro

    ResponderExcluir
  8. Crie um evento create dentro dele colo
    spd = 4;

    Depois cria outro evento chamado step dentro dele coloca
    if keyboard_check(vk_left);{
    X -=1
    }

    Depois é só copiar e colar e trocar as teclas.
    Espero ter ajudado

    ResponderExcluir
  9. meu personagem simplesmente não quer mexer as pernas

    ResponderExcluir
  10. o meu da o erro Assignment operator expected.

    ResponderExcluir