Sonic Game Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar
Últimos assuntos
SONIC ADVENTURE 3Sáb 13 Jan - 13:50:03KellyaneFELIZ NATAL 2023Seg 25 Dez - 12:48:36Divin Sphere HiroshaiErro ao Abrir ProjetoTer 25 Jul - 8:44:49Ian LagesJá fazem 10 anos...Qua 3 maio - 12:21:59Divin Sphere HiroshaiFeliz Natal 2022Qua 11 Jan - 21:41:47Ian LagesTOUCH - AndroidSex 21 Out - 21:40:23Divin Sphere HiroshaiA volta de nat-frutoSex 12 Ago - 11:24:58Divin Sphere HiroshaiDiscord Game MakerDom 9 Jan - 23:16:01Nest_DJ.EXtremeHAPPY NEW YEAR 2022Sáb 1 Jan - 20:27:23Divin Sphere HiroshaiDoIt - Jogo AndroidSáb 1 Jan - 20:22:31Divin Sphere HiroshaiFELIZ NATAL 2021Sáb 25 Dez - 23:43:15Divin Sphere Hiroshaiefraim leonardo quadrinhos do sonicSeg 22 Nov - 8:48:52FizContaSóPraIsso[11/2021] Atualizações Importantes de SegurançaDom 7 Nov - 23:41:23Lago Roxoum post interessanteTer 27 Jul - 17:10:45Divin Sphere HiroshaiBring The Block - AndroidSáb 17 Abr - 15:31:53Divin Sphere Hiroshai

Ir para baixo
avatar
...
Mensagens : 106
Reputação : 0
Data de inscrição : 26/01/2012
Masculino
Localização : Guaratinguetá - SP

Criar seu próprio jogo de corrida em 2d Empty Criar seu próprio jogo de corrida em 2d

Ter 31 Jan - 16: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: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Sonic Luan
Sonic Luan
Mensagens : 2678
Reputação : 19
Data de inscrição : 06/06/2011
Idade : 24
Masculino
Localização : Casa
https://sonicmaker.forumeiros.com

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

Qua 1 Fev - 0:15:54
Very Happy
é ganha mais 5 rings
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos