GameMaker Tutorial - Platform Game
2234 palavras
9 páginas
1. GRAVIDADE a. Definir Sprite e Objeto para o explorador e para o objeto sólido.
b. Criar a room e adicionar os objetos.
c. Evento Step.
a. Primeiro bloco de código referente à gravidade: if (place_free(x, y + 1)) { // se uma posição abaixo estiver livre gravity = 0.5;
} else { gravity = 0;
}
b. A velocidade aumenta constantemente então acrescenta-se o seguinte código para a velocidade não passar de 10 steps: if (vspeed > 10) { vspeed = 10; // não teletransportar
}
d. Adicionar o evento de colisão com o bloco, dentro colocar o pedaço de código com um comentário e testar! (Ele não tocará no chão). Pq não encostou se a colisão entre objeto sólido é quando um entra no outro? Pq quando eles colidem o gamemaker retorna o objeto à posição anterior.
a. Para isso dentro do evento colisão adicionamos o código:
Vspeed = 0;
Enquanto o objeto estiver colidindo a velocidade vai ser nula.
b. Quando testar ele vai ficar no solo, porém reduzindo um pouco a velocidade (efeito escadinha), em virtude de que o gamemaker ainda retorna o personagem a ultima posição, na segunda vez que ele encosta o programa então ignora. Acrescentamos o seguinte código na colisão: if (other.solid) { //other palavra reservada para o outro objeto move_contact_solid(direction, 12); //12px para baixo speed = 0;
}
O que esse código faz?
Num raio de 12px o programa verifica se ele vai colidir com algum objeto solido, caso verdadeiro vai mover até que encoste. Isso faz com que ele não encontre o objeto de surpresa e retorne a posição anterior.
e. Fazer pular acrescenta-se o seguinte código dentro do STEP para gravidade, depois mudamos para o step de movimentação. if (keyboard_check_pressed(vk_space)) { vspeed = -10; // subir
}
Esse comando vai fazer pular, porém mesmo estando no ar eu posso continuar pulando por esse motivo cria-se a variável no_ar que recebe verdadeiro quando esta no ar e falso quando no chão.
i. Criamos a variável no_ar no evento