Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Blocos Que Podem Ser Destruidos ?

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Shark
Membro
Membro
Reações: 0
Mensagens: 56
Localização: Somewhere

Contato:

Blocos Que Podem Ser Destruidos ?

Mensagem por Shark » Seg Set 04, 2017 9:20 pm

Bem,
Eu estou com uma dúvida à já algum tempo, e seria bom se alguém me ajuda se a corrigir este pequeno bug.
Então eu criei um bloco (sólido) que não pode ser destruído pelo facto de eu usar a função place_free();
Agora o problema é, como faço um bloco que em uma fileira apenas este primeiro sera destruído ?
Exemplo: Aqui
Imagem

Avatar do usuário
lucaslima
Novato
Novato
Reações: 0
Mensagens: 18

Re: Blocos Que Podem Ser Destruidos ?

Mensagem por lucaslima » Ter Set 05, 2017 12:45 pm

E aí Shark beleza? Então cara, no caso do Bomberman, uma explosão é formada por vários objetos, que são colocados em seus devidos lugares de acordo com a possibilidade e força. Não sei se é este método que está utilizando, mas vou tentar te ajudar:

Após o tempo da bomba passar ela deve explodir, neste caso criando um objeto OBJ_EXPLOSAO
Neste objeto devemos ter uma variável para controlar a força da bomba, neste caso, deve ser: bomb_power = 1;
A bomb_power deve sempre começar em 1, pois será a quantia de quadrados que ela vai explodir.

Logo após isso devemos ter a 4 variáveis, que controlarão onde serão criadas as outras explosões, sendo assim:

for(i=0;i<bomb_power;i++)
{
exp_right = instance_position(x+32*i,y,obj_parede); //Explosao_Direita = parede ao lado direito da explosão

if exp_right != -1 //Se houver alguma parede
{
    if exp_right.pode_explodir == 1 //Se a parede pode ser explodida
    {
        with(exp_right) //Com a parede
        {
            instance_destroy(); //Se destrói e cria a sua explosão, neste caso uma parede sendo destruída
            instance_create(x,y,obj_explodido);
           i = bomb_power; //Previne para que não sejam criadas outras explosões após essa parede
        }
    } //Se a parede não pode ser explodida, não acontece nada;
}
else //Se não houver nenhuma parede
{
instance_create(x+32*i,y,obj_explodido) //Cria outro objeto de explosão que apenas executa a animação
}
}


As outras 3 variáveis são: exp_left, exp_up e exp_down, estes eu deixo para você fazer para você aprender :)
Veja se esse código funciona.
OBS.: Todos os objetos que se relacionam como PAREDE devem ser filhos de um único objeto. Neste caso, você cria um objeto: obj_parede, e cria outros objetos: obj_parede1, obj_parede_de_fogo, obj_parede_de_ferro etc, e coloca tudo como filho do obj_parede;
OBS².: Cada objeto parede deve ter sua variavel pode_explodir = 0; //Define se ela pode ser explodida =1 ou não =0
Esquece o que ta riscado, estou criando uma engine aqui pra te ajudar a entender!

Avatar do usuário
Shark
Membro
Membro
Reações: 0
Mensagens: 56
Localização: Somewhere

Contato:

Re: Blocos Que Podem Ser Destruidos ?

Mensagem por Shark » Ter Set 05, 2017 3:26 pm

lucaslima escreveu:
E aí Shark beleza? Então cara, no caso do Bomberman, uma explosão é formada por vários objetos, que são colocados em seus devidos lugares de acordo com a possibilidade e força. Não sei se é este método que está utilizando, mas vou tentar te ajudar:

Após o tempo da bomba passar ela deve explodir, neste caso criando um objeto OBJ_EXPLOSAO
Neste objeto devemos ter uma variável para controlar a força da bomba, neste caso, deve ser: bomb_power = 1;
A bomb_power deve sempre começar em 1, pois será a quantia de quadrados que ela vai explodir.

Logo após isso devemos ter a 4 variáveis, que controlarão onde serão criadas as outras explosões, sendo assim:

for(i=0;i<bomb_power;i++)
{
exp_right = instance_position(x+32*i,y,obj_parede); //Explosao_Direita = parede ao lado direito da explosão

if exp_right != -1 //Se houver alguma parede
{
    if exp_right.pode_explodir == 1 //Se a parede pode ser explodida
    {
        with(exp_right) //Com a parede
        {
            instance_destroy(); //Se destrói e cria a sua explosão, neste caso uma parede sendo destruída
            instance_create(x,y,obj_explodido);
           i = bomb_power; //Previne para que não sejam criadas outras explosões após essa parede
        }
    } //Se a parede não pode ser explodida, não acontece nada;
}
else //Se não houver nenhuma parede
{
instance_create(x+32*i,y,obj_explodido) //Cria outro objeto de explosão que apenas executa a animação
}
}


As outras 3 variáveis são: exp_left, exp_up e exp_down, estes eu deixo para você fazer para você aprender :)
Veja se esse código funciona.
OBS.: Todos os objetos que se relacionam como PAREDE devem ser filhos de um único objeto. Neste caso, você cria um objeto: obj_parede, e cria outros objetos: obj_parede1, obj_parede_de_fogo, obj_parede_de_ferro etc, e coloca tudo como filho do obj_parede;
OBS².: Cada objeto parede deve ter sua variavel pode_explodir = 0; //Define se ela pode ser explodida =1 ou não =0
Esquece o que ta riscado, estou criando uma engine aqui pra te ajudar a entender!
Obrigado,
Se precisar da engine que eu tou a utilizar so falar mesmo que eu posso mostrar aqui no forum :)
Imagem

Avatar do usuário
lucaslima
Novato
Novato
Reações: 0
Mensagens: 18

Re: Blocos Que Podem Ser Destruidos ?

Mensagem por lucaslima » Ter Set 05, 2017 3:31 pm

Pronto! :) Demorei um pouco pois estava comentando as linhas e arrumando a animação das explosões. Qualquer dúvida, é só chamar. Engine BomberMan

É controlada pelo mouse, para você criar uma bomba você clica em cima da bomba que está seguindo o mouse. Ou ao invés de usar o leftpressed igual eu usei, use o mouse > global mouse > global left pressed

Você pode aumentar a força da bomba usando as setas do teclado para cima e para baixo.

Avatar do usuário
Shark
Membro
Membro
Reações: 0
Mensagens: 56
Localização: Somewhere

Contato:

Re: Blocos Que Podem Ser Destruidos ?

Mensagem por Shark » Ter Set 05, 2017 4:00 pm

Obrigado vou já testar :)
Imagem

Avatar do usuário
lucaslima
Novato
Novato
Reações: 0
Mensagens: 18

Re: Blocos Que Podem Ser Destruidos ?

Mensagem por lucaslima » Ter Set 05, 2017 4:24 pm

Tudo bem então! Aguardo as suas respostas.

Avatar do usuário
Shark
Membro
Membro
Reações: 0
Mensagens: 56
Localização: Somewhere

Contato:

Re: Blocos Que Podem Ser Destruidos ?

Mensagem por Shark » Ter Set 05, 2017 6:11 pm

Amigo o exemplo está óptimo, porém continuo a ter o mesmo problema.
Se quiser poderei enviar a engine em privado.
Fico aguardando uma resposta.
Imagem

Avatar do usuário
lucaslima
Novato
Novato
Reações: 0
Mensagens: 18

Re: Blocos Que Podem Ser Destruidos ?

Mensagem por lucaslima » Ter Set 05, 2017 7:46 pm

Que bom, e que ruim ao mesmo tempo! Vamos lá me mande e vamos resolver seu problema.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes