Como empurrar uma caixa

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

Como empurrar uma caixa

Mensagem por BugueiXD em Qua 03 Jun 2015, 19:52

Olá pessoal, passei aqui rapidinho porque não estou conseguindo fazer o meu player empurrar um objeto, sei que existem tutoriais sobre isso no fórum, mas eu queria que meu player só empurrasse a caixa ao apertar uma tecla, e também mudasse de sprite ao empurrar

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como empurrar uma caixa

Mensagem por Thyago em Qua 03 Jun 2015, 19:57

Basta checar a distancia e se esta precionando a tecla

Código:
if(distance_to_object(obj_caixa)=0 and keyboard_check(tecla){
empurra a caixa
}

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Como empurrar uma caixa

Mensagem por BugueiXD em Qua 03 Jun 2015, 20:29

Até ai eu entendi, mas queria que o meu player agarrasse na caixa, e arrastasse ela tanto para um lado quanto para o outro

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como empurrar uma caixa

Mensagem por Thyago em Qua 03 Jun 2015, 20:36

vc pode colocar

Código:
obj_caixa.x+= x-xprevious;
obj_caixa.y+= y-yprevious;

Existem mil maneiras de fazer isso, depende so seu metodo de programar, se gosta de usar speed, ou x e y, direction entre outros

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Como empurrar uma caixa

Mensagem por Willy em Qua 03 Jun 2015, 21:02

Não é assim tão simples...

Empurrar caixas requer prever espaço livre tanto por parte do jogador quanto por parte da caixa. O trabalho é dobrado se a função de puxar caixas também for aplicada.

Basicamente, você deve sincronizar o movimento da caixa com o jogador, ou seja, ambos os movimentos devem ser executados exatamente no mesmo momento, evitando que o jogador se atrofie com a caixa. O ideal é você não controlar os movimentos da caixa não no objeto da caixa, mas sim, no objeto que a empurra. Dessa forma, é possível certificar-se que tudo será executado no mesmo step, bem como as corretas verificações que antecipam o movimento.

Possuo essa engine, ela é deveras ultrapassada, mas tem uma base que talvez lhe seja útil... Talvez eu faça um tutorial sobre como empurrar caixas, sei lá, deu vontade.  sorrindo2

Flws... blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como empurrar uma caixa

Mensagem por BugueiXD em Qui 04 Jun 2015, 11:02

Willy eu vi sua engine, mas encontrei outro método no fórum, e ele me pareceu mais rápida, no entanto, quando eu passo por cima da caixa, eu sou meio que puxado para o lado, até sair da colisão com ela.

Código:
if (bbox_bottom > other.bbox_top) {
    if (bbox_left > other.bbox_right) {
        other.x -= 1; // mude pela velocidade do objeto que empurra;
    }
    else {
        other.x += 1; // idem;
    }
}
else {
    vspeed = 0;
    move_contact_solid(direction,16);
}

Esse é o código, poderia me ajudar?

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como empurrar uma caixa

Mensagem por Willy em Qui 04 Jun 2015, 15:59

Você quer algo mais rápido ou de qualidade? Só por este bug que relatou, já deu pra perceber que não é tão rápido assim.

Nem toda engine é compatível com seu projeto, o ideal, é você estudar a engine e tentar fazer o seu próprio sistema. Entenda que se você utiliza hspeed/vspeed para mover seu objeto, uma engine que empurra caixas usando x+= dificilmente será compatível com seu projeto e vice-versa.

Não sei se existem outros códigos além deste, mas, me parece que esse método não é a prova de paredes. Já fez o teste?

Já faz tempo desde a ultima vez que eu abri a engine que sugeri, não me lembro do método que usei e tampouco de sua flexibilidade. Recomendo que esqueça um pouco das engines e procure fazer seu próprio sistema utilizando a lógica que eu disse no post anterior. Dessa forma, você terá pleno entendimento do seu código e poderá fazer as devidas modificações sem maiores problemas.

Quanto ao código que pediu que eu ajudasse... Bom, ele tá usando x+= e speed. Tem tudo pra dar errado isso ae. Perceba que o funcionamento da engine não depende só da forma de movimentação da caixa, mas também da forma de movimentação do objeto que empurra que deve ser a mesma.

Flws... blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como empurrar uma caixa

Mensagem por andrewsnycollas em Qui 16 Jul 2015, 15:28

Vocês complicam muito as coisas.

É só criar uma variável de controle pra quando estiver agarrando. E enquanto ela estiver verdadeira igualar a velocidade da caixa com a do jogador.

andrewsnycollas

Número de Mensagens : 25
Idade : 26
Data de inscrição : 27/07/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://andrewsnycollas.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Como empurrar uma caixa

Mensagem por Conteúdo patrocinado Hoje à(s) 16:29


Conteúdo patrocinado


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