Se precisar da engine que eu tou a utilizar so falar mesmo que eu posso mostrar aqui no forum :)
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 ?
Blocos Que Podem Ser Destruidos ?
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
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
Re: Blocos Que Podem Ser Destruidos ?
Esquece o que ta riscado, estou criando uma engine aqui pra te ajudar a entender!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
Re: Blocos Que Podem Ser Destruidos ?
Obrigado,lucaslima escreveu:Esquece o que ta riscado, estou criando uma engine aqui pra te ajudar a entender!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
Se precisar da engine que eu tou a utilizar so falar mesmo que eu posso mostrar aqui no forum :)
Re: Blocos Que Podem Ser Destruidos ?
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.
É 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.
Re: Blocos Que Podem Ser Destruidos ?
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.
Se quiser poderei enviar a engine em privado.
Fico aguardando uma resposta.
Re: Blocos Que Podem Ser Destruidos ?
Que bom, e que ruim ao mesmo tempo! Vamos lá me mande e vamos resolver seu problema.
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes