Carro (Top-Down)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Qualidade Carro (Top-Down)

Mensagem por Gonçalves em Sab 06 Nov 2010, 01:50

Carro (Top-Down)

Este tutorial aborda como:

- Desenhar um carrinho básico.
- Acelerar, freiar, dar ré e fazer curvas.
- Criar uma pista por tiles.

Lembrando, você precisará do Game Maker PRO!


Desenhando um carrinho básico

Bom, a primeira coisa que faremos é desenhar um carrinho, que é muito simples, até porquê, em jogos Top-Down não há necessidade de desenhar gráficos para todos as posições do carro. Primeiramente crie um sprite, nomeie-o como quiser, depois clique em Edit Sprite, crie uma nova imagem com 24x16, como a seguir:


Agora clique duas vezes na imagem e abrirá o editor, ponha Zoom 800% e siga os templates:


1. Faça um retângulo
2. Faça o desenho das rodas
3. Dentro dele faça outros dois, na vertical, que são os vidros do carro

Para seu carro ficar menos "quadradão", faça como nas imagens abaixo:


1. Tire as pontas
2. Ponha fárois
3. Pinte-o como preferir

Resultado:



Criando o objeto do carro

Crie o objeto do carro, ponha como sprite o que você criou, no evento Create, arraste o Execute Code para as ações, dentro dela coloque o seguinte:

Código:
vel_maxima = 6
Define qual a velocidade máxima que o carro poderá atingir.

Código:
aceleracao = 0.2
Define a aceleração do carro, quanto maior, menos tempo levará para alcançar a velocidade máxima.

Código:
freio = 0.2
Define a força do freio do carro, quanto maior, menos tempo ele levará para atingir 0 quando estiver freiando.

Código:
curva = 2.5
Define a curva do carro, quão maior, mais rápido ele curvará.

Código:
friction = 0.07
Define quanto tempo ele levará para atingir velocidade 0 quando não estiver acelerando.

No todo ficará assim:

Código:
vel_maxima = 6
aceleracao = 0.2
freio = 0.2
curva = 2.5
friction = 0.07

Você pode modificar e deixar como quiser.

Para que as váriaveis criadas acima tenham utilidade, você deve criar o script principal, para isso, no evento Step, arraste o Execute Code para as ações. Dentro dele deve-se colocar isso:

Código:
if keyboard_check(vk_left) && speed != 0
{image_angle += curva}
O que simplesmente fizemos foi, checar se a tecla esquerda (vk_left) foi pressionada e a velocidade (speed) do carro é diferente de 0 (Pois um carro não pode virar parado), se sim, o ângulo da imagem (image_angle) aumentará pela var curva do carro, que definimos no create.

Código:
if keyboard_check(vk_right) && speed != 0
{image_angle -= curva}
Aqui o o contrário, verificamos se a tecla direita foi pressionada e o speed diferente de 0, se sim, image angle é subtraído pela curva do carro.

Código:
direction = image_angle
Sem isso, o ângulo da imagem mudará, mas o carro continuará andando na mesma direção.

Código:
if keyboard_check(vk_up)
{if speed < vel_maxima{speed += aceleracao}}
Agora checamos se a tecla pra cima foi pressionada, se sim, checamos se a var speed é menor que a var velocidade máxima (Assim, impedindo que passe do limite), se sim, aumentamos a var speed pela var aceleração.

Código:
if keyboard_check(vk_down)
{if speed > vel_maxima*-1/2{speed -= freio}}
Agora checamos se a tecla baixo foi pressionada, se sim, checamos se a var speed é maior que a var velocidade máxima multiplicada por -1 dividida por 2 (Se no caso, velocidade máxima é 6, a negativa é -3), se sim, a var speed é subtraída pela var freio.

Tudo junto:

Código:
if keyboard_check(vk_left) && speed != 0
{image_angle += curva}
if keyboard_check(vk_right) && speed != 0
{image_angle -= curva}
if keyboard_check(vk_up)
{if speed < vel_maxima{speed += aceleracao}}
if keyboard_check(vk_down)
{if speed > vel_maxima*-1/2{speed -= freio}}

Resultado:

Seu carro já acelera, freia, dá ré e faz curvas.

Criando pistas por tiles

Agora, faremos uma pista usando tiles, para criar um tile é simples, mas antes criaremos o background (o chão da room). Vá em Background e crie uma grama, se não souber como, baixe a imagem abaixo:


Clique em Load Background e escolha o gráfico da grama.


Não se esqueça de deixar a caixa Use as tile set desmarcada.

Nossa pista terá medida de 128x128. Abra o Paint (ou qualquer programa do tipo) e crie uma imagem, seu tamanho deverá ser de 128x128, como abaixo:


Vá em Resize e dobre o tamanho, para 256x256, agora crie um círculo na imagem, com as cores que deseja para a pista:


Salve-o, o nome pode ser qualquer um, por exemplo, curvas.

Agora vamos às retas, crie imagens de 128x16 e 16x128, recomendo baixar as de baixo:



Agora no seu projeto, crie um Background, carregue a imagem do círculo, tire o fundo branco em Image > Erase a Color, e marque a opção Use as tile set, e divida por 4, como abaixo:


Faça também com a estrela, com as curvas, o tile width e o tile height devem ser do mesmo tamanho da imagem, e use no seu mapa, se não sabe, veja como aqui: http://www.gamemakerbrasil.com/game-maker-f36/utilizando-tiles-em-seu-jogo-t516.htm#2761

Resultado:



Eu particularmente prefiro uma cor mais escura, então o meu ficou assim.

Créditos:

matheus.reis


Última edição por matheus.reis em Sab 06 Nov 2010, 21:39, editado 3 vez(es)

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Convidad em Sab 06 Nov 2010, 10:04

cara ajudou eu pra caramba cara ta muito bom essa tuto,devia ter qualidade 100%

Convidad
Convidado


Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Gonçalves em Sab 06 Nov 2010, 21:12

Valeu! Razz

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Fuzenrad em Sab 06 Nov 2010, 21:35

Ótimo tutorial, bastante explicativo.

Só precisa de correção nas imagens do final, que estão muito pequenas. Você postou a imagem com o link das miniaturas do imageshack.

Fuzenrad

Ranking : Nota A
Número de Mensagens : 1026
Idade : 26
Data de inscrição : 04/07/2010
Notas recebidas : A-A-A-A-B
Reputação : 41
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Gonçalves em Sab 06 Nov 2010, 21:41

Já consertei.
Até. tongue

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Alexandre Dias em Sab 06 Nov 2010, 21:45

Que rápido.
O tutorial parece muito bom, já que está cheio de imagens e li um pouco a explicação também está boa. Usarei ele quando for fazer um jogo de carro top down.

Alexandre Dias

Número de Mensagens : 397
Idade : 22
Data de inscrição : 13/10/2010
Reputação : 8
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Adriel em Ter 16 Nov 2010, 20:32

Este tuto está excelente, tentei até fazer um baseado nele mas... achei um erro :|

Na hora de acelerar, tem que colocar pra ele ir na direção que o carro virar! Mesmo que você esteja de lado e apertar o botão de acelerar, ele vai pro lado! Sacou a minha dúvida?

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Gonçalves em Ter 16 Nov 2010, 20:38

Não... Talvez você tenha colocado duas condições iguais nessa parte:

Código:
if keyboard_check(vk_left) && speed != 0
{image_angle += curva}
if keyboard_check(vk_right) && speed != 0
{image_angle -= curva}
if keyboard_check(vk_up)
{if speed < vel_maxima{speed += aceleracao}}
if keyboard_check(vk_down)
{if speed > vel_maxima*-1/2{speed -= freio}}

Ou então você esqueceu de colocar isso no Step:

Código:
direction = image_angle

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Adriel em Ter 16 Nov 2010, 20:41

Ih é! Eu não tinha colocado o "direction = image_angle"

Foi mal Razz

Outra dúvida, sabe como faço pra, quando virar ( dar "cavalo-de-pau" ) execute o sound0?

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por CLS em Ter 16 Nov 2010, 20:47

Adriel escreveu:Ih é! Eu não tinha colocado o "direction = image_angle"

Foi mal Razz

Outra dúvida, sabe como faço pra, quando virar ( dar "cavalo-de-pau" ) execute o sound0?

Faça isso:

Código:
//Códigos que faz o carro fazer drift
sound_play(Aqui você coloca o nome do som)

CLS

Número de Mensagens : 298
Idade : 19
Data de inscrição : 13/05/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.totalmakers.forumais.com

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Adriel em Ter 16 Nov 2010, 20:48

Pois é isso mesmo que eu quero! Mas tem um problema, eu não sei qual o code de drift :|

Esse teu code eu já sabia :|

Adriel

Número de Mensagens : 922
Idade : 18
Data de inscrição : 18/07/2009
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Gonçalves em Ter 16 Nov 2010, 20:55

Substitua o início do código do Step por isso.

Código:
if keyboard_check(vk_left) && speed != 0
{
image_angle += curva
sound_play(sound0)
}
if keyboard_check(vk_right) && speed != 0
{
image_angle -= curva
sound_play(sound0)
}

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Ishgnea em Qua 27 Abr 2011, 00:50

Muito bom seu tuto, é exatamente o que eu estava precisando!!!

Parabéns!

Ishgnea

Número de Mensagens : 1
Idade : 27
Data de inscrição : 25/04/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por sonic luan em Qua 27 Abr 2011, 09:53

muito legal vai ajudar bastante gente Very Happy


PS :. Hoje e meu Anniversario!

sonic luan

Ranking : Nota C
Número de Mensagens : 1003
Idade : 17
Data de inscrição : 28/01/2011
Notas recebidas : C-D-A-C
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://sonicmaker.forumeiros.com/memberlist

Voltar ao Topo Ir em baixo

Qualidade Re: Carro (Top-Down)

Mensagem por Conteúdo patrocinado Hoje à(s) 04:08


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum