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
Julio The Fox
Julio The Fox
Mensagens : 839
Reputação : 2
Data de inscrição : 04/09/2011
Idade : 27
Masculino
Localização : Vaco do tempo espaço perdido.

[Tutorial] Sistema de caixas Empty [Tutorial] Sistema de caixas

Ter 22 Jan - 19:00:08
Nesse tutorial vou ensinar a como fazer caixas deslocáveis.
Uma engine está disponível no final do tópico para quem quiser.

Antes de mais nada, tenha um objeto do personagem previamente configurado para andar (e pular, caso queira que a caixa seja sólida).

Passo 1 - Criando a caixa móvel

Primeiro crie um sprite qualquer para a caixa, sugiro que faça com um 32X32 mesmo só pra testar, se funcionar, troque depois.

Depois, crie o objeto da caixa, podendo ser sólido ou não (vai a seu gosto).
Caso seja não sólido, é possível fazer o personagem passar por frente (ou por trás) da caixa.

Passo 2 - Criando o objeto que irá empurrar a caixa

Aqui, adicione sprites do personagem empurrando a caixa, depois crie dois objetos pra ele (um que irá empurrar pra esquerda, e outro que irá empurrar pra direita).

Passo 3 - Programando os objetos

Vamos primeiro no personagem pré-configurado.
Lá, vamos criar um evento de colisão com a caixa e coloquemos esse código:

Código:
/* Sendo pushL o objeto que irá empurrar para a esquerda e pushR o que
irá empurrar pra direita: */
if keyboard_check_pressed (vk_left) {instance_change (pushL,true)}
if keyboard_check_pressed (vk_right){instance_change (pushR,true)}

/* Nota: se colocar o código check_pressed, só irá trocar quando você
parar em cima da caixa e pressionar o direcional, ou se colocar o
keyboard_check, ele irá empurrar assim que colidir com a caixa. */


Agora, vamos no objeto que irá empurrar a caixa pra esquerda.
Nele, vamos criar um evento Create e por o seguinte código:

Código:
image_speed=0.5 //Pra definir a velocidade da animação
image_xscale=1 //Sendo igual a 1, a imagem não inverte
hspeed=-3 // Velocidade do personagem ao empurrar a caixa

Depois, crie um evento Step e ponha o seguinte código:

Código:
hspeed=-3 //Para garantir que ele não irá perder a velocidade.

if keyboard_check_released (vk_left) {instance_change (player,true)}
/*Esse código acima diz que quando você soltar o direcional para a
esquerda, ele volta a ser o player de antes */

gravity=1 /*Esse código pode variar de acordo com o seu sistema de
gravidade */

Não se esqueça de configurar algo pra anular a gravidade em colisão com o chão.

Agora, vamos para o objeto que irá empurrar a caixa pra direita e vamos praticamente por os mesmos códigos, porém invertidos para que ele vá pra direita em vez de ir pra esquerda.

No Create ponha o seguinte código:

Código:
image_xscale=-1 //Inverte a imagem sendo igual a -1
image_speed=0.5 //Velocidade da animação
hspeed=3 //Pra garantir que ele irá se mover ao ser criado

No Step ponha o seguinte código:

Código:
image_xscale=-1 //Inverte a imagem sendo igual a -1
image_speed=0.5 //Velocidade da animação
hspeed=3 //Pra garantir que ele irá se mover ao ser criadohspeed=3 //Garante que não perderá a velocidade

if keyboard_check_released (vk_right) {instance_change(player,true)}
/*Esse código acima diz que quando você soltar o direcional para a
esquerda, ele volta a ser o player de antes */

gravity=1 //Pode variar de acordo com seu sistema de gravidade

Agora basta configurar a caixa pra seguir o personagem.
No objeto da caixa crie um evento de colisão para cada objeto que empurra a caixa (nomeados na engine de pushL (para ir pra esquerda) e pushR (pra ir pra direita)).

No evento de colisão com o pushL ponha o seguinte código:

Código:
x=pushL.x
y=pushL.y
image_xscale=-1
/* Os códigos acima fazem a caixa seguir o personagem. Não se esqueça
de por o centro do sprite de empurrar a caixa nas mãos e o centro do
sprite da caixa com o Y no meio e o X no início! */

E no evento de colisão com o pushR, ponha o código:

Código:
x=pushR.x
y=pushR.y
image_xscale=1
/* Os códigos acima fazem a caixa seguir o personagem. Não se esqueça
de por o centro do sprite de empurrar a caixa nas mãos e o centro do
sprite da caixa com o Y no meio e o X no início! */

E seu sistema de empurrar caixas está pronto!

Algumas coisas não foram explicadas nesse tutorial (como sistema de gravidade), mas estão na engine.

Qualquer dúvida, pode perguntar.

Download da engine:
aqui
Sonic_Ray-ian
Sonic_Ray-ian
Mensagens : 656
Reputação : 4
Data de inscrição : 11/10/2011
Idade : 24
Masculino
Localização : Shirei
http://sfpf.forumeiros.com/forum

[Tutorial] Sistema de caixas Empty Re: [Tutorial] Sistema de caixas

Ter 22 Jan - 19:26:03
bem legal cara, vai ajudar bastante o pessoal aki =]
Knonick
Knonick
Mensagens : 884
Reputação : 9
Data de inscrição : 13/06/2011
Idade : 25
Masculino
Localização : São Paulo, Brasil

[Tutorial] Sistema de caixas Empty Re: [Tutorial] Sistema de caixas

Ter 22 Jan - 22:52:27
Códigos bem explicativos, gostei. A única parte ruim é que precisa ser feita troca de instância, mas se bem que a maioria dos jogos dos iniciantes são feitos assim, e adaptar em um jogo com uma só instância de jogador não é nada difícil. Em geral, parabéns.
Lucas o ouriço de gelo
Lucas o ouriço de gelo
Mensagens : 450
Reputação : 0
Data de inscrição : 26/01/2013
Masculino
Localização : em casa

[Tutorial] Sistema de caixas Empty Re: [Tutorial] Sistema de caixas

Qui 28 Fev - 11:54:00
vai ajudar muita jente com essa engine vou criar um projeto chamado lucas chao garden valeu pela ajda

edit:

e claro darei creditos
Taigo Toushirou
Taigo Toushirou
Adiministrador
Mensagens : 1598
Reputação : 10
Data de inscrição : 25/08/2011
Idade : 30
Masculino
Localização : Salvador Bahia
http://veloxzone2.blogspot.com/

[Tutorial] Sistema de caixas Empty Re: [Tutorial] Sistema de caixas

Qui 28 Fev - 15:48:25
Muito legal o tutorial e sem falar que de quebra vem uma engine junto! ^^
Parabéns Julio!
Conteúdo patrocinado

[Tutorial] Sistema de caixas Empty Re: [Tutorial] Sistema de caixas

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos