Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Mensagens : 839
Reputação : 2
Data de inscrição : 04/09/2011
Idade : 21
Masculino
Localização : Vaco do tempo espaço perdido.
Ver perfil do usuário

[Tutorial] Sistema de caixas

em 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

______________________________________________________________________________________________
Lutar sempre, vencer talvez, desistir jamais.

By: Yuri The Hedgehog
avatar
Mensagens : 654
Reputação : 4
Data de inscrição : 11/10/2011
Idade : 18
Masculino
Localização : Shirei
Ver perfil do usuáriohttp://sfpf.forumeiros.com/forum

Re: [Tutorial] Sistema de caixas

em Ter 22 Jan - 19:26:03
bem legal cara, vai ajudar bastante o pessoal aki =]

______________________________________________________________________________________________
Olá! Convidado Bem Vindo Ao fórum! 
Por favor, dê uma olhada em algum dos meus projetos!

[Você precisa estar registrado e conectado para ver este link.]
Ajude na campanha:
Avaliando jogos sem avaliação.
Tem algum jogo sem avaliação? Mande uma MP para mim ou light.
avatar
Mensagens : 884
Reputação : 9
Data de inscrição : 13/06/2011
Idade : 19
Masculino
Localização : São Paulo, Brasil
Ver perfil do usuário

Re: [Tutorial] Sistema de caixas

em 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.

______________________________________________________________________________________________
avatar
Mensagens : 450
Reputação : 0
Data de inscrição : 26/01/2013
Masculino
Localização : em casa
Ver perfil do usuário

Re: [Tutorial] Sistema de caixas

em 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

______________________________________________________________________________________________
meu blog:http://sonicspeedv1.blogspot.com.br/

Spoiler:




Se e meu amigo coloque isso na sua assinatura:



Vao no meu forum:

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

[Você precisa estar registrado e conectado para ver este link.]
avatar
Adiministrador
Mensagens : 1598
Reputação : 10
Data de inscrição : 25/08/2011
Idade : 24
Masculino
Localização : Salvador Bahia
Ver perfil do usuáriohttp://veloxzone2.blogspot.com/

Re: [Tutorial] Sistema de caixas

em 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

Re: [Tutorial] Sistema de caixas

Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum