Login

Esqueci minha senha

Últimos assuntos
» Run Guy! (jogo de Jam)
por Divin Sphere Hiroshai Hoje à(s) 16:05:53

» Ainda há esperança? [POR FAVOR LEIA!]
por Divin Sphere Hiroshai Hoje à(s) 16:01:18

» Dando uma nova chance ao forum
por IanLages Hoje à(s) 15:18:16

» HQ: The Parallax
por Ace, The Walking Spoiler Hoje à(s) 8:16:00

» Meu site basico
por dangamer Ter 29 Nov - 16:14:03

» Baixe PROF-HERO!
por Efraim Leonardo Dom 27 Nov - 13:01:17

» Recolhendo numero de parças
por Divin Sphere Hiroshai Ter 22 Nov - 19:24:19

» Super Smash Bros. Crusade!
por BlueFox Seg 21 Nov - 10:44:26

» Curso de Game Maker!
por IsraelGames Sab 19 Nov - 8:46:13

» Novo Membro - Israel Games
por IsraelGames Sab 19 Nov - 8:40:02

» Sonic & Metal Sonic One-Shots
por Ace, The Walking Spoiler Sex 18 Nov - 17:52:37

» O fim se aproxima
por Ace, The Walking Spoiler Sex 18 Nov - 17:01:19

» forum morreu???? nooooo!!!
por Divin Sphere Hiroshai Sex 18 Nov - 14:46:16

» Stardust the history
por Divin Sphere Hiroshai Sex 18 Nov - 14:42:41

» Novo no Forum - Me chamem de Fubuki
por fujoshiman1234 Qui 10 Nov - 16:38:59

» Nova série animada e vaga para dublagem
por Divin Sphere Hiroshai Sab 5 Nov - 19:14:07

» Adeus SGM parte 1
por Divin Sphere Hiroshai Ter 1 Nov - 19:21:37

» A Jornada Completo
por Divin Sphere Hiroshai Qua 12 Out - 16:06:38

» SGM Amino foi feito!
por Nest_DJ.EXtreme Seg 10 Out - 16:00:48

» Um Menu Diferenciado e ... votação ? o.Õ
por Nest_DJ.EXtreme Dom 9 Out - 18:00:23


Criar seu próprio jogo de corrida em 2d

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

Criar seu próprio jogo de corrida em 2d

Mensagem por ... em Ter 31 Jan - 13:55:07

Este tutorial vai dar a base para se construir um jogo de corrida.
Por
pura questão de "eu gosto mais de fazer assim", tudo aqui é feito via
GML, mas provavelmente a maior parte, senão tudo, pode ser feito pelas
Actions padrão, neste caso.

Os códigos não estão tão bem explicados, mas são códigos muito simples, fáceis de serem entendidos.

Crie um novo projeto.
Lembre-se
que vamos fazer apenas o jogo funcionar. Se você quiser, depois pode
incrementá-lo com sons e gráficos melhores, mas eu vou usar o que for
mais fácil e simples. Os gráficos usados estão anexados neste post.


Crie
um sprite spr_carro usando a imagem do carro. Abra o Sprite Editor, e
no menu Transform, vá em Resize Canvas, pra modificar o tamanho da
imagem. Desmarque a caixa Keep aspect ratio, e coloque 90 por 90 (vai
dar 214% por 115%) e dê OK. Agora vá em Transform > Rotate 90
clockwise.

Agora, vamos animar o carro, para dar a impressão de
curva, de que o carro gira. Na guia Animation, vá em Rotation Sequence
> Counter-Clockwise, e coloque 72 frames. Veja que foram criados
frames de animação do carro girando de 5 em 5 graus (isto é, 360 graus,
volta completa, divididos por 72, número de frames).

Se você marcar a opção Show Preview, verá o carro girando.
Dê OK, centraliza as coordenadas do sprite, clicando em Center e dê OK novamente.

Agora vamos criar um sprite que irá delimitar as laterais da pista.
Crie um novo sprite spr_parede usando a imagem do bloco cinza. Desmarque a caixa Transparent, centralize as coordenadas e dê OK.

Agora,
vamos criar o sprite do adversário. Duplique o spr_carro, coloque como
spr_carro2, vá no Sprite Editor, Image > Colorize Partial, e coloque
uma cor diferente do outro carro.


Usando a imagem do retângulo quadriculado, crie o spr_chegada.

Acabamos os sprites. Vamos aos Objects.

Primeiro, o obj_carro, o carro controlável pelo jogador.
Coloque o spr_carro, marque a opção Solid, vá no evento Create e coloque o código abaixo:

Código:
friction = .6
image_speed = 0

No evento Step, coloque este código:

Código:
if keyboard_check(vk_up) then motion_set(direction,10);
if keyboard_check(vk_right) then direction -= 5;
if keyboard_check(vk_left) then direction += 5;

image_index = direction * image_number/360;
Pronto. Assim o carro já se move, faz curva, desacelera se você parar de pressionar, e o sprite aponta para a direção certa.

Crie um objeto obj_parede, coloque o spr_parede, marque a caixa Solid, e volte ao obj_carro.
No obj_carro, evento Collision > obj_parede, adicione este código:


Código:
move_contact_solid(direction,-10)
Próximo
passo, o adversário. Pra que ele percorra a pista, vamos usar um Path.
Mas para isso, antes teremos que criar a room da pista. Crie uma room, e
delimite a pista com o obj_parede. Ainda na room, não esqueça de
definir uma View que siga o obj_carro, para você sempre vê-lo (uma das
Aulas de GML fala sobre Views, caso você não saiba usar).

Antes de
criar o Path, crie o obj_carro2, e faça igual ao obj_carro, só retire a
parte do evento Step que tem keyboard_check, deixe só a última linha.
Coloque um obj_carro2 na room da pista.


Agora crie um Path.
Aparecerá
a janela Path Properties. Na barra de ferramentas, o último ícone é
Indicate a room to show as background. Clique nesse ícone e escolha a
room da sua pista. Ela apareceu no fundo, não é mesmo?

Então, agora é só você definir o caminho que o carro adversário vai seguir nessa pista.

Uma vez que você marcou todos os pontos e definiu o path, salve e vá no obj_carro2.

No evento Create do obj_carro2, adicione esta linha:

Código:
path_start(nome_do_seu_path,8,0,0)
Esta
linha configura para este objeto o path que você fez, com velocidade 8,
indica que ele deve parar ao fim do path e que a posição do path é
relativa.

Na ajuda do GM, se você consegue ler em inglês, há muito mais detalhes sobre isso aqui e tudo que já foi feito antes.

Agora, para evitar que os carros se choquem, no evento Collision > obj_carro2 do obj_carro, coloque este código:


Código:
move_outside_solid(direction,16)
Agora
para terminar, vamos fazer a linha de chegada. Crie um objeto
obj_chegada, usando o spr_chegada. No evento Step, coloque este código:


Código:
if collision_rectangle(x-64,y-8,x+64,y+8,obj_carro,1,0)
{
show_message("Player 1 WIN");
game_restart();
}
else if collision_rectangle(x-64,y-8,x+64,y+8,obj_carro2,1,0)
{
show_message("CPU WIN");
game_restart();
}
Este código irá mostrar na tela quem venceu ("Player 1" ou "CPU") e depois irá reiniciar o jogo

Tutorial feito por:

mod_ptck



Do site: [Você precisa estar registrado e conectado para ver este link.]


...

Mensagens : 116
Reputação : 0
Data de inscrição : 26/01/2012
Masculino
Localização : Guaratinguetá - SP

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criar seu próprio jogo de corrida em 2d

Mensagem por Sonic Luan em Ter 31 Jan - 21:15:54

Very Happy
é ganha mais 5 rings

Sonic Luan

Mensagens : 3335
Reputação : 18
Data de inscrição : 06/06/2011
Idade : 17
Masculino
Localização : Casa

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

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