Conectar-se
Quem está conectado
25 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 25 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Como empurrar uma caixa

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
avatar
Ranking : Nota B
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Número de Mensagens : 1092
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 31

Prêmios
   : 1
   : 1
   :
Ver perfil do usuário

Re: Como empurrar uma caixa

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
}
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como empurrar uma caixa

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
avatar
Ranking : Nota B
Notas recebidas : D+B+B+C+A
Data de inscrição : 24/08/2009
Número de Mensagens : 1092
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 31

Prêmios
   : 1
   : 1
   :
Ver perfil do usuário

Re: Como empurrar uma caixa

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
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Como empurrar uma caixa

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
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como empurrar uma caixa

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?
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Como empurrar uma caixa

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
Data de inscrição : 27/07/2012
Número de Mensagens : 25
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuáriohttp://andrewsnycollas.blogspot.com.br/

Re: Como empurrar uma caixa

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