[Tutorial] Sistema de caixas
5 participantes
- Julio The Fox
- Mensagens : 839
Reputação : 2
Data de inscrição : 04/09/2011
Idade : 27
Localização : Vaco do tempo espaço perdido.
[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:
Agora, vamos no objeto que irá empurrar a caixa pra esquerda.
Nele, vamos criar um evento Create e por o seguinte código:
Depois, crie um evento Step e ponha o seguinte código:
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:
No Step ponha o seguinte código:
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:
E no evento de colisão com o pushR, ponha o código:
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
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
Re: [Tutorial] Sistema de caixas
Ter 22 Jan - 19:26:03
bem legal cara, vai ajudar bastante o pessoal aki =]
- Knonick
- Mensagens : 884
Reputação : 9
Data de inscrição : 13/06/2011
Idade : 25
Localização : São Paulo, Brasil
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
- Mensagens : 450
Reputação : 0
Data de inscrição : 26/01/2013
Localização : em casa
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
edit:
e claro darei creditos
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!
Parabéns Julio!
Permissões neste sub-fórum
Não podes responder a tópicos