Escolar Documentos
Profissional Documentos
Cultura Documentos
Visão geral
Parte 1: A Plataforma
Parte 2: O Jogador
Parte 4: Salto
Neste tutorial, iremos criar um "Baseline 2D Platformer". Neste contexto, "linha de base" significa
as funções básicas. Portanto, em um jogo de plataforma 2d de linha de base, você pode ver ou
experimentar o seguinte:
Parte 1: A plataforma
Primeiro, vamos criar a plataforma. Para fins de tutorial, a plataforma é um retângulo branco que
envolverá a metade inferior da janela do jogo.
plataforma = {}
plataforma . largura = amor . gráficos . getWidth () - Torna a plataforma tão ampla quanto toda a
janela do jogo.
plataforma . altura = amor . gráficos . getHeight () - Isso torna a plataforma tão alta quanto toda a
janela do jogo.
final
fim
- A plataforma agora será desenhada como um retângulo branco enquanto considera as variáveis
que declaramos acima.
final
Parte 1 O Platform.PNG
Parte 2: o jogador
O próximo será o personagem do jogador. Para fins de tutorial, o personagem do jogador será um
bloco roxo de 32x32. Desta vez, em vez de usar love.graphics.rectangle , usaremos
love.graphics.draw . A razão para isso é porque o bloco roxo seria um arquivo externo. Assim, você
aprenderá a desenhar uma imagem "internamente" e também a desenhar uma imagem "externa".
Você pode obter o bloco roxo aqui .
Nota: Apenas como uma referência rápida, love.graphics.rectangle permite que você desenhe um
retângulo na janela do jogo. Podemos considerar isso como uma forma de "renderização de
arquivo interno" (não o termo exato ou apropriado), uma vez que estamos declarando seus
(possíveis) parâmetros no código do jogo. Por outro lado, love.graphics.draw permite desenhar
uma imagem na janela - desde que o tipo de arquivo seja compatível. Podemos considerar isso
como uma forma de "renderização de arquivo externo" (novamente, não é o termo exato ou
apropriado), uma vez que a imagem que estamos renderizando é um arquivo externo sendo
chamado pelo código do jogo.
...
...
jogador . x = amor . gráficos . getWidth () / 2 - Define o jogador no meio da tela com base na
largura da janela do jogo.
jogador . y = amor . gráficos . getHeight () / 2 - Define o jogador no meio da tela com base na altura
da janela do jogo.
end
fim
...
fim
Temos a plataforma, temos o jogador! É hora de fazer esse cara se mexer. Lembre-se de que em
plataformas 2d, o jogador deve ser capaz de se mover para a esquerda e para a direita! Não
podemos simplesmente deixar o jogador avançar para a direita para sempre. Para fazer isso,
precisamos declarar a velocidade de movimento do jogador, bem como atribuir entradas de
teclado para que quando o jogador pressionar um determinado botão, o personagem se mova para
a esquerda ou direita dependendo do que está codificado.
...
player . velocidade = 200 - Esta é a velocidade do jogador. Este valor pode ser alterado de acordo
com sua preferência.
fim
se amor . teclado . isDown ( 'd' ) then - Quando o jogador pressiona e mantém pressionado o botão
"D":
elseif amor . teclado . isDown ( 'a' ) then - Quando o jogador pressiona e mantém pressionado o
botão "A":
fim
fim
Se você executar o código, o jogador agora pode se mover para a esquerda e para a direita!
CONTUDO! Há um problema. Se você ainda não percebeu, se continuar movendo o personagem
para a direita (ou para a esquerda), ele passará pela janela do jogo e ficará fora da visão do
jogador. Para fins de tutorial, não queremos isso. Portanto, dentro da função love.update ():
se jogador . x < ( adoro . gráficos . getWidth () - player . img : getWidth ()) e depois
end
jogador . x - ( jogador . velocidade * dt ) end end end- Isso garante que o personagem não
ultrapasse a borda esquerda da janela do jogo.
jogador . x =
Agora o jogador não consegue passar pela tela. Desta forma, o personagem do jogador estará
sempre dentro dos limites da janela do jogo.
Parte 4: salto
Tudo o que resta agora é pular. Você não pode ter um jogo de plataforma 2D sem pular. Sem ele, o
jogador não pode realmente superar obstáculos como fossos ou paredes. É hora de um pouco de
física básica. Para que algo pule e caia, um objeto (neste caso, o personagem do jogador) precisa
ter uma velocidade do eixo Y, uma altura de salto e gravidade. Para fins de tutorial, não levaremos
em consideração a massa de um objeto, entretanto, vale a pena mencionar que dar massa a um
objeto pode mudar o funcionamento de sua física. Primeiro, vamos declarar as três coisas que
mencionamos anteriormente. Também estarei adicionando uma variável chamada "solo". Isso é
para indicar onde está o terreno. Pense nisso como o lugar onde os pés devem se tocar e pousar
após o salto.
...
jogador . y_velocity = 0 - Sempre que o personagem ainda não saltou, a velocidade do eixo Y está
sempre em 0.
jogador . jump_height = - 300 - Sempre que o personagem pula, ele pode atingir essa altura.
jogador . gravidade = - 500 - Sempre que o personagem cair, ele descerá nesta taxa.
fim
Depois de declarar as variáveis, iremos agora fazer o salto do caractere. Para fazer isso,
precisamos atribuir uma tecla que fará o personagem pular.
...
...
E se amor . teclado . isDown ( 'espaço' ) então - Sempre que o jogador pressiona ou mantém
pressionada a barra de espaço:
- O jogo verifica se o jogador está no solo. Lembre-se de que quando o jogador está no solo, a
velocidade do eixo Y = 0.
fim
fim
fim
Não terminamos ainda. Se você tentar pular, o personagem não pulará ainda. Isso ocorre porque
ainda não adicionamos a física do salto.
...
...
fim
jogador . y_velocity = 0 - A velocidade do eixo Y é definida de volta para 0, o que significa que o
personagem está no chão novamente.
jogador . y = jogador . ground - A velocidade do eixo Y é definida de volta para 0, o que significa que
o personagem está no chão novamente.
fim
fim
Parte 4- Jumping.gif
Parabéns! Você criou um Baseline 2D Platformer! Agora, para referência, todo o código:
plataforma = {}
jogador = {}
plataforma . x = 0
jogador . y_velocity = 0
final
se jogador . x < ( adoro . gráficos . getWidth () - player . img : getWidth ()) e depois
extremidade
end
end
end
end
se jogador . y_velocity ~ = 0 então
jogador . y_velocity = 0
fim
fim
Espero que este tutorial tenha ajudado de alguma forma e agradeço por ler e experimentar este
tutorial.