Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[ Delphi] Criando um Jogo - Parte 2 - Movimentação Vertical


xxXGaleginXxx
 Compartilhar

Posts Recomendados

Este é o Segundo tutorial. Neste tutorial iremos fazer a Física e a movimentação vertical.

 

Proximo Tutorial: Criação de Mapa

 

Previa:

eu096b.png

 

➣ 1. Introdução

➣ 2. Adicionando a Física

➣ 3. Criando o JetPack

➣ 4. Finalizando

➣ 5. Efeitos de Movimentação

❶. Introdução

 

 

Neste tutorial iremos fazer uma coisa mais complicada ainda, iremos adicionar o movimento Vertical do nosso personagem. com uma matematica básica, iremos fazer a física e etc...

Antes de começar, é necessário ter o projeto anterior, ou seja, do primeiro tutorial.

❷. Adicionando a Física

 

 

 

Fazer a física funcionar no delphi é intrigante, não é uma coisa facil, você olha aquilo e diz ser facil, mas se duvida, faça você mesmo um teste e crie um TShape 'caindo' e acelerando... Mas eu estou aqui para ajudar, então eu vou dar isto direto na sua mão, assim você não se esforça e nunca será melhor que eu, é só um pouco de paciencia e você tera a fisica funcionando, segue abaixo:

 

Vá na aba System e adicione um Timer(Um relogio) ao seu Form1.

Ajuste as Propriedades:

Enabled = false

Interval = 20

Name = 'tmr_physic'

 

Coloque-o do lado do tmr_keys.

 

Declare estas Variaveis Globais:

 

gravf,imgs: Integer;

 

E no evento OnTimer do tmr_physic, entre BEGIN e END, coloque:

 

shp_char.Top := shp_char.Top+gravf;

if shp_char.Top > 200 then

begin

shp_char.Top := shp_char.Top-gravf;

gravf := 1;

end

else

begin

gravf := gravf+1;

end;

 

Agora, no btn_start (botão Começar o Jogo), substitua o código atual, delete begin e end e coloque isto:

 

begin

if sgame then

begin

shp_char.Visible := true;

tmr_keys.Enabled := true;

tmr_physic.Enabled := true;

btn_start.Caption := 'Pausar o Jogo';

sgame := false;

end else if sgame = false then begin

if btn_start.Caption = 'Continuar o Jogo' then begin

btn_start.Caption := 'Pausar o Jogo';

shp_char.Visible := true;

tmr_keys.Enabled := true;

tmr_physic.Enabled := true;

end else begin

shp_char.Visible := true;

btn_start.Caption := 'Continuar o Jogo';

tmr_keys.Enabled := false;

tmr_physic.Enabled := true;

end;

end;

end;

 

Salve e Teste, a física esta feita!

 

❸. Preparando o Jetpack

 

 

Agora iremos colocar os efeitos no jetpack, então, baixe as seguintes imagens:

 

Imagem 1: jet1.png

Imagem 2: jet2.png

Imagem 3: jet3.png

Imagem 4: jet4.png

Imagem 5: jet5.png

 

Não ficou muito legal as imagens pq fui eu k fiz, não sou expert em pixelart, mas tenho certa experiência de newb ;/

 

Deixem os nomes como Imagem 1,2,3,4 e 5 corretamente.

 

Agora, na aba Additional, adicione 1 TImagem (Paisagem)

Modifique as propriedades:

 

Height = 48

Name = 'img_effect'

Transparent = true

Visible = false

Width = 22

 

e em Picture, coloque a Imagem 1 (o quadrado cinza)

 

Na aba System, Adicione outro Timer e edite suas propriedades:

 

Enabled = false

Interval = 20

Name = 'tmr_jet'

 

Agora, copie o img_effect e cole até existirem 6 imagens.

Assim:

Você tem o img_effect, copia e cola 1 vez, e o Imagem1 aparece, cole mais veses até o Imagem5 existir, então altere suas propriedades:

 

Name = 'img_effect1'

Name = 'img_effect2'

Name = 'img_effect3'

etc...

 

no img_effect1, deixe o picture como esta.

no img_effect2, coloque a imagem 2 que você baixou anteriormente.

no img_effect3, coloque a imagem 3 que você baixou anteriormente.

etc...

 

você terá 6 IMAGENS ao total no seu form, então continue:

 

no tmr_jey, no evento onTimer, delete begin e end e coloque este código:

 

begin

shp_char.Width := 22;

if GetAsyncKeyState(38) < 0 then

begin

tmr_physic.Enabled := false;

gravf :=-3;

if imgs = 1 then

begin

shp_char.Top := shp_char.Top-3;

img_effect.Picture.Graphic := img_effect2.Picture.Graphic;

imgs := 2;

end else if imgs = 2 then begin

shp_char.Top := shp_char.Top-4;

img_effect.Picture := img_effect3.Picture;

imgs := 3;

end else if imgs = 3 then begin

shp_char.Top := shp_char.Top-5;

img_effect.Picture.Graphic := img_effect4.Picture.Graphic;

imgs := 4;

end else if imgs = 4 then begin

shp_char.Top := shp_char.Top-5;

img_effect.Picture.Graphic := img_effect5.Picture.Graphic;

imgs := 5;

end else if imgs = 5 then begin

shp_char.Top := shp_char.Top-5;

img_effect.Picture.Graphic := img_effect4.Picture.Graphic;

imgs := 4;

end;

end else begin

img_effect.Picture := img_effect1.Picture;

tmr_physic.Enabled := true;

end;

img_effect.Top := shp_char.Top;

img_effect.Left := shp_char.Left;

end;

 

 

Agora, no evento OnCreate do Form1, entre begin e end, delete o que tiver e coloque isto:

 

imgs := 1;

gravf := 1;

sgame := true;

 

Finalmente, no botão btn_start, vamos substituir o código denovo, remova o primeiro begin até o ultimo end do evento e coloque este código:

 

 

begin

if sgame then

begin

shp_char.Visible := true;

tmr_keys.Enabled := true;

tmr_physic.Enabled := true;

tmr_jet.Enabled := true;

btn_start.Caption := 'Pausar o Jogo';

sgame := false;

img_effect.Visible := true;

end else if sgame = false then begin

if btn_start.Caption = 'Continuar o Jogo' then begin

btn_start.Caption := 'Pausar o Jogo';

shp_char.Visible := true;

img_effect.Visible := true;

tmr_keys.Enabled := true;

tmr_physic.Enabled := true;

tmr_jet.Enabled := true;

end else begin

shp_char.Visible := true;

img_effect.Visible := true;

btn_start.Caption := 'Continuar o Jogo';

tmr_keys.Enabled := false;

tmr_physic.Enabled := false;

tmr_jet.Enabled := false

end;

end;

end;

 

No tmr_keys, no evento OnTimer, Substitua o código atual e, entre begin e end coloque:

 

 

if GetAsyncKeyState(37) < 0 then

begin

shp_char.Left := shp_char.Left-2

end;

if GetAsyncKeyState(39) < 0 then

begin

shp_char.Left := shp_char.Left+2

end;

img_effect.Top := shp_char.Top;

img_effect.Left := shp_char.Left;

 

 

E, para finalizar, finalmente:

 

No evento OnTimer do tmr_physic, Substitua o código atual e, entre begin e end coloque:

 

 

shp_char.Top := shp_char.Top+gravf;

if shp_char.Top > 200 then

begin

shp_char.Top := shp_char.Top-gravf;

gravf := 1;

end

else

begin

gravf := gravf+1;

end;

img_effect.Top := shp_char.Top;

img_effect.Left := shp_char.Left;

 

Teste, agora, você voa, depois, você tem gasolina...

Mas a gasolina só vai vim bem depois...

Eae? o jogo ficou foda?

 

❹. Finalizando

 

 

Agora que você conseguio copiar, se estiver com algum erro, você é um babaca cara sem atenção, passe o olho sobre o tutorial e veja só os QUOTES, veja se alguma coisa voce não fez, não achou nada? Então leia as instruções de cada quote (em cima de cada quote) ainda sim não achou nada?

aff... vá pedir ajuda na area de suporte, não no tutorial, não ta afim de fazer isto? va lendo até o fim do tutorial, e depois baixe o produto final.

 

ESTA PARTE É OPCIONAL, e rima com aba additional, mas é opcional!

Vá na aba Additional e coloque um TShape modifique suas propriedades:

Height = 13

Left = 6

Name = 'shp_chao' // este é o chão Ficticio, no futuro, iremos usar variaveis ninjas ;/

Top = 223

Width = 403

 

Aperte F9 e veja o meu seu jogo recem criado.

Incrivel né?

 

❺. Efeitos de Movimentação

 

 

No primeiro tutorial, não colocamos nada efeitos de movimentação, porem, neste tutorial, você pode ver que colocamos, falando nisto, eu não achei na internet os sprites chatos, então eu mesmo tive que fazer no paint -.- que sako, mesmo assim, você aprendeu como fazer efeitos e coisas deste tipo.

 

Bem, este é o fim do segundo tutorial, em breve outro tutorial será publicado, mas minha intenção é postar 3 tutoriais na mesma hora, a parte 1,2 e 3...

 

Créditos:

100% Feito por Gravyerd, nenhum tutorial ou ajuda utilizada.

 

Download do produto final:

 

É necessário se cadastrar para acessar o conteúdo.

 

 

 

Este tutorial foi grande coisa, então, mesmo se esquecendo, aperta no botão brilhante e seja brilhante o suficiente para agradecer se você gostou deste tutorial.

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.