terça-feira, 16 de agosto de 2022

Como criar MOVIMENTAÇÃO, GRAVIDADE e COLISÃO de personagens (para jogos de plataforma) no Game Maker Studio 2


Já chegamos a fazer um tutorial de movimentação para jogos RPG/campo aberto no Game Maker, e agora estaremos fazendo um tutorial de movimentação para jogos de plataforma. Se por acaso você usou os códigos de movimentação do nosso outro tutorial, APAGUE eles e faça do jeito que estaremos explicando aqui, ok?!

Também chegamos a fazer um outro tutorial de colisão no Game Maker, mas neste caso, também se aplica apenas a jogos de RPG e campo aberto.

Esse tutorial de movimentação vem diretamente do canal NoneClass, onde também somos alunos do seu curso. No fim, deixaremos um link para acessar um vídeo completo do mesmo sobre criação de jogos de plataforma, ok?

Objetos de colisão (obj_chao)

Inicialmente, você deve criar dois sprites e dois objetos. As sprites são desenhos que ficam nos objetos. No caso dos objetos, você deve criar um objeto para o jogador e outro objeto para o chão. No nosso exemplo (bem como nos códigos que vamos mostrar abaixo) você deve ter um:

  1. obj_player (o Objeto do Jogador).
  2. obj_chao (o Objeto que representa o chão).
Ao criar o obj_chao, crie o objeto e nada mais.


Agora, no obj_player, você deverá criar alguns eventos e colocar alguns códigos. Ao fazer isso, em poucos minutos, você já terá toda a base de colisão e gravidade também do seu jogo de plataforma.


Colocando os códigos para Movimentação, Colisão e Gravidade no seu jogo de plataforma

Agora vamos mexer no objeto obj_player. Nesse obj_player, crie 3 eventos:

  1. Create
  2. Step
  3. End Step

Em Create, você coloca o seguinte código:

velocidade_horizontal = 0;
velocidade_vertical = 0;
velocidade = 5;
gravidade = .3;
velocidade_pulo = 8;

inputs = {

left : (ord("A")),
right : (ord ("D")),
jump : (ord ("T")),
}

OBSERVAÇÃO: para entender melhor sobre colocar as teclas de movimentação (a diferença entre "ord" e "vk", acesse nosso outro tutorial de movimentação.


Em Step, você coloca o seguinte código:

//Controlando o jogador

var _chao = place_meeting (x, y+1, obj_chao);

var _left, _right, _jump, _restart;

_left = keyboard_check (inputs.left);
_right = keyboard_check (inputs.right);
_jump = keyboard_check (inputs.jump);
_restart = keyboard_check (inputs.restart);

if (_restart)
{
game_restart();
}

velocidade_horizontal = (_right - _left) * velocidade;

//Pulando
if (_chao)
{
if (_jump)
{
velocidade_vertical = - velocidade_pulo;
}
}
else
{
//Aplicando a gravidade
velocidade_vertical += gravidade;

}
E, por fim, em End Step, você coloca o seguinte código:
//Checando se estou colidindo na parede.
var _colisao = instance_place (x + velocidade_horizontal, y, obj_chao)
//se eu colidi eu grudo em quem eu colidi

if (_colisao)
{
//Checando se eu estou indo para direita
if (velocidade_horizontal > 0)
{
x = _colisao.bbox_left + (x - bbox_right);
}
//Checando se eu estou indo para esquerda
if (velocidade_horizontal < 0)
{
x = _colisao.bbox_right + (x - bbox_left);
}
//Uma vez que eu colidi, não importa o lado, eu paro
velocidade_horizontal = 0;
}

x += velocidade_horizontal;

var _colisao = instance_place(x, y + velocidade_vertical, obj_chao )

if (_colisao)
{
if (velocidade_vertical > 0)
{
//Indo pra baixo
y = _colisao.bbox_top + (y - bbox_bottom);
}
if (velocidade_vertical < 0)
{
//Indo pra cima
y = _colisao.bbox_bottom + (y - bbox_top);
}
velocidade_vertical = 0;
}

y += velocidade_vertical;

Testando agora a colisão, movimentação e gravidade no seu projeto



Coloque os objetos da mesma forma que eu coloquei acima. Repare que eu coloquei o obj_player um pouco acima do chão, além de três objetos chão (um será um bloco, o outro o chão e o outro uma parede). Além disso, de acordo com o código colocado acima, ao apertar o "T" do teclado, o personagem vai pular.

Qualquer dúvida, deixe nos comentários.

Nenhum comentário:

Postar um comentário

Sobre Nós

Rei dos Games


Rei dos Games é um site destinado a falar tudo sobre videogames (jogos antigos), RPGs de mesa e board games. Além disso, trazemos tutoriais, dicas, cheats de quem realmente experimentou essas mídias, trazendo também boas recomendações.


Rei dos Games é o único blog dedicado a três tipos de jogos diferentes (eletrônicos, de tabuleiro e RPGs). Se você quer conhecer bons jogos para brincar, este é o lugar certo.


Postamos recentemente

recentposts

Aleatório

randomposts