Conectar-se

Esqueci minha senha

Últimos assuntos
» [Duvida] O que aprender
Hoje à(s) 00:17 por Fubukki

» Nota de esclarecimento - GMBR voltou!
Sex 23 Jun 2017, 20:33 por Willy

» Regras do Fórum
Sex 23 Jun 2017, 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Jogo Dengue HTML
Seg 30 Nov 2015, 16:17 por guga

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Ordenar variavel em ordem decrescente
Sex 28 Ago 2015, 21:09 por Kodained

» colisão de queda após outra colisão dando problema
Qui 27 Ago 2015, 13:51 por manobrother

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Problema com Colisão
Qui 27 Ago 2015, 12:30 por The_Game

» Quem quer Uma Engine, e de Quê?
Qui 27 Ago 2015, 09:22 por theguitarmester

» [RESOLV]Como adicionar 2 objetos na mesma posição?
Qua 26 Ago 2015, 11:38 por Bhryenno Kelvyn Carlson

» Sistema de porta!!!
Ter 25 Ago 2015, 21:29 por theguitarmester

» Venda de objetos em Inventário - Multiplicado
Seg 24 Ago 2015, 18:33 por AG Hydra

» Atirar na direção certa
Seg 24 Ago 2015, 09:03 por theguitarmester

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Problemas na compilação android
Dom 23 Ago 2015, 23:43 por Zero.

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Como estabilizar um som
Sab 22 Ago 2015, 19:03 por Isquilo_Roedor

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» Sobre instance Creation Code
Sab 22 Ago 2015, 08:39 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» Como fazer um temporizador
Sex 21 Ago 2015, 19:02 por Isquilo_Roedor

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

» Tipo de Draw que dê melhor fps...
Sex 21 Ago 2015, 12:25 por Pai véi

Quem está conectado
26 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 26 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36

Carro (Top-Down)

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

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)
avatar
Gonçalves

Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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

Re: Carro (Top-Down)

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

Valeu! Razz
avatar
Gonçalves

Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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.
avatar
Fuzenrad

Ranking : Nota A
Notas recebidas : A-A-A-A-B
Data de inscrição : 04/07/2010
Número de Mensagens : 1026
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Carro (Top-Down)

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

Já consertei.
Até. tongue
avatar
Gonçalves

Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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.
avatar
Alexandre Dias

Data de inscrição : 13/10/2010
Número de Mensagens : 397
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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?
avatar
Adriel

Data de inscrição : 18/07/2009
Número de Mensagens : 922
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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
avatar
Gonçalves

Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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?
avatar
Adriel

Data de inscrição : 18/07/2009
Número de Mensagens : 922
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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)
avatar
CLS

Data de inscrição : 13/05/2010
Número de Mensagens : 298
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário http://www.totalmakers.forumais.com

Voltar ao Topo Ir em baixo

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 :|
avatar
Adriel

Data de inscrição : 18/07/2009
Número de Mensagens : 922
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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)
}
avatar
Gonçalves

Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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!
avatar
Ishgnea

Data de inscrição : 25/04/2011
Número de Mensagens : 1
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

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!
avatar
sonic luan

Ranking : Nota C
Notas recebidas : C-D-A-C
Data de inscrição : 28/01/2011
Número de Mensagens : 1003
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 1

Ver perfil do usuário http://sonicmaker.forumeiros.com/memberlist

Voltar ao Topo Ir em baixo

Re: Carro (Top-Down)

Mensagem por Conteúdo patrocinado


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