sábado, 17 de setembro de 2011

Criando jogo de plataforma

Nome: Como fazer um jogo de plataforma.
Descrição: Aqui aprenderemos a fazer um jogo de plataforma. Percebi que mesmo com tantos tutoriais, ainda tem gente com dúvidas nesse assunto. Então resolvi ajuda a todos que estiverem com dúvidas.
Plataforma: Gmae Maker 8.0 Pro
Nível de dificuldade: Fácil

Vamos começar!

1ª passo:
Comece desenhando um quadrado como player: um para a direita e outra pra esquerda, ou se ja estiver desenhado outros, tudo bem. Chame-o de spr_jogador.

2ª passo:
Agora desenhe o chão.

3ª passo:
Crie um objeto e chame-o de obj_jogador. Marque-o como "Solid". Crie um evento "Create" e vá na aba "Control" e arraste o botão "Execute code". Abra ele e coloque o seguinte código:
CÓDIGO:
velocidade_do_player=5
pulo_do_player=-8

Esplicando o código: a velocidade do jogador vai ser 5 e a altura do seu pulo vai ser -8.
Nesse caso, o computador entende um numero negativo para cima e o positivo para baixo.

4ª passo:
Crie um evento "Step" no obj_jogador e coloque o seguinte código:
CÓDIGO:
if place_free(x,y + 1)
{
gravity = 0.5
}
else
{
gravity = 0
}

if keyboard_check(vk_right)and not keyboard_check(vk_left)
repeat(velocidade_do_player)
{
if place_free(x+1,y)
x+=1
direcao=1
}

if keyboard_check(vk_left)and not keyboard_check(vk_right)
repeat(velocidade_do_player)
{
if place_free(x-1,y)
x-=1
direcao=-1
}

if keyboard_check_pressed(vk_up){
if not place_free(x,y+1){
vspeed=pulo_do_player
}
}
if keyboard_check_released(vk_up)and vspeed <= 0{
vspeed/=2
}

Explicando o código: Se tiver um pixel abaixo, ele vai cair. Caso contrário, ele ficará parado. Se você apertar a seta direita e não apertar a esquerda, ele irá andar para a direita.Se você apertar a seta ~esquerda e não apertar a direita, ele irá andar para a esquerda. Se apertar a seta pra cima, ele irá pular.

5ª passo:
Agora crie um objeto e chame-o de obj_chao. Marque-o como "Solid".

6ª passo:
Voltando ao obj_jogador, vamos la e criamos um evento "Collision - obj_chao". Coloque o seguinte código nele:
CÓDIGO:
if vspeed > 0 and not place_free(x,y + vspeed)
{
move_contact_solid(direction,vspeed)
}
vspeed = 0

Explicando o código: Quando velocidade vertical for maior que e nao tiver e não tiver espaço abaixo, se cair em alguma coisa sólida(obj_chao), sua velocidade vertical será 0.

7ª passo:
Crie uma room, coloque o chão na room e coloque o jogador. Caso não funcione, releia os códigos ou pergunte aqui mesmo!

Nenhum comentário:

Postar um comentário