Problemas em fazer room_restart()

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

Problemas em fazer room_restart()

Mensagem por gustavo12g em Qua 28 Nov 2012, 19:09

Meu problema é o seguinte: obj_player quando é atingido por um inimigo está programado para que o player seja destruído, o inimigo tb, e que crie no lugar um fogo que desaparece rapidamente. OK. Depois disso gostaria que a fase se reiniciasse, como acontece nos games. Naõ venho conseguindo que ela se reinicie.
Tento algo tipo: no create do player: vidas=3
No seu step: if vidas =2 {room_restart()}

No contato com o inimigo: vidas-=1

Mas ele não restarta. Continuando a passar o cenário sem o player.

Como devo proceder?

gustavo12g

Número de Mensagens : 42
Data de inscrição : 27/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por moisesBR em Qua 28 Nov 2012, 19:42

Simplismente acrecente room_restart na colisão!
Código:
vidas -=1
room_restart()

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por gustavo12g em Qua 28 Nov 2012, 19:50

Ok... sim funciona, o problema e que preciso que ele restarte alguns segundos depois da colisão (tipo uns 2 a 3 seg). Assim aparecerá primeiro o efeito dele sendo destruído. Caso coloque direto na colisão, ele restarta não dando tempo do efeito.

gustavo12g

Número de Mensagens : 42
Data de inscrição : 27/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por Super Maker em Qua 28 Nov 2012, 20:14

Se você fizesse isso pra uma image_index a animação aconteceria, porém o restart seria muito imediato.
Uma outra solução seria usar um alarm na colisão dando a ele o valor 90 e na ação dele o restart.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por gustavo12g em Qua 28 Nov 2012, 20:25

Tentei o alarm na colisao mas não restarta. Precisava que o jogo seguisse os padroes normais: 3 vidas... cada perda de uma vida ele voltava para o começo da room. Quando chegasse em 3 mortes acabaria o jogo.

gustavo12g

Número de Mensagens : 42
Data de inscrição : 27/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por Super Maker em Qua 28 Nov 2012, 20:31

Tentei o alarm na colisao mas não restarta.
Usando condições e variáveis o alarm funciona.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por JoaoVanBlizzard em Qua 28 Nov 2012, 20:43

Usando a idéia do moises tente assim:
no evento destroy use:
Código:

vidas -=1
sleep(3000)
room_restart()
esse metodo ira fizar o jogo depois que for colidido agora se você não quer frizar faça assim
crie uma instancia chamada "controle" por exemplo que seje fixa no game e use esse evento
no evento destroy use:
Código:

vidas -=1
controle.alarm[0]=90
agora voce coloca a funçao no objeto "controle"
no event alarm0 use:
Código:

room_restart()



Última edição por JoaoVanBlizzard em Qua 28 Nov 2012, 20:51, editado 1 vez(es) (Razão : corrigir ortografia)

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por gustavo12g em Qua 28 Nov 2012, 21:03

Infelizmente dos os dois jeitos nao funcionaram.

gustavo12g

Número de Mensagens : 42
Data de inscrição : 27/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por JoaoVanBlizzard em Qua 28 Nov 2012, 21:29

Ah testei aqui e é verdade,nao deu certo mas agora eu fiz uma agora que deu
tente assim:

crie um objeto chamado obj_controle e coloque na room
nele voce precisa por esse codigo

No evento create:
Código:

lives=3
No evento Alarm0:
Código:

room_restart()
no evento Room Start:
Código:

if lives>0 then {lives-=1 }
else
{
show_message("game over")
game_restart();
}



no obj_player voce coloca:
no Evento Destroy :
Código:

obj_controle.alarm[0]=60

testei e funcionou,vai fundo amigo Very Happy
Edit
eu coloquei "lives" mas pode colocar "vida" como vc fez que da certo falou

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por Super Maker em Qua 28 Nov 2012, 21:59

Faz esse teste, acompanha abaixo!
Crie um objeto e dê o nome de obj_player pra ele.
Vamos as propriedades dele...
Create:
Código:
life = 3;
active = 1;
Alarm[0]:
Código:
if life > 0
{
    active = 1;
} else {
    room_restart();
}
Step:
Código:
if active = 1
{
    sprite_index = spr_player;
    if keyboard_check(vk_right)
    {
        x+=4;
    }
    if keyboard_check(vk_left)
    {
        x-=4;
    }
} else {
    sprite_index = spr_player_animation;
}
Collision:
Código:
if active = 1
{
    life-=1;
    alarm[0] = 90;
    active = 0;
}
Crie um objeto com o nome obj_enemy e pra ele faça...
Draw:
Código:
yn = "";
draw_self();
draw_set_font(font0);
if obj_player.active = 1
{
    yn = "sim";
} else {
    yn = "não"
}
draw_set_halign(fa_left);
draw_text(5,5,"Vidas: "+string(obj_player.life)+"#Movimento ativo: "+yn);
if obj_player.life == 0
{
    draw_set_halign(fa_center);
    draw_text(room_width/2,100,"As vidas acabaram, a fase vai reiniciar agora!");
}
Acho que nem preciso escrever nada sobre a fonte.

Agora coloque esses dois lado a lado na mesmo room e faça o teste de colisão.
Até logo!

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por moisesBR em Qua 28 Nov 2012, 22:33

É... tava tentando resolver o problema e para isso queimei uns neurônios... aff e quando vim trazer minha versão, a galera aí tá disposta a tentar ajudar, mas mesmo assim vou colocar o que fiz, pois gastei um tempinho nele heheheeh:
http://dl.dropbox.com/u/77569588/minhas%20engines%20para%20download/Engine%20vidas%2Brestart%20(moisesBR).gmk

Edit:
sei que muitos abominam a distribuição de engines, mas com elas aprendemos muito analisando como foi feito!
A propósito: coloquei para que quando entrar em contato com o inimigo o player perca uma vida e em seguida no mesmo local uma animação e no fim de 3 vidas reseta a room.
setas movem o player.

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por Super Maker em Qua 28 Nov 2012, 23:11

A animação ta boa moisesBR, só falta ajustar as condições pra fazer a última animação acontecer.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por moisesBR em Qui 29 Nov 2012, 09:54

É... eu ia dizer que foi proposital para que a turma aí tentasse inserir... mas a verdade é que eu esqueci de colocar mesmo! kkkkk!

Puxa vida uma coisinha tão simples dá um trabalho desses! Eu diria que era só repetir o processo, mas criaria um loop interminável! Então a solução para a animação foi criar um novo objeto final e destruir os antigos depois da animação do novo, inserir um temporizador onde se dá o reinicio perfeito.

atualizado em 29//11/2012:
http://dl.dropbox.com/u/77569588/minhas%20engines%20para%20download/Engine%20vidas%2Brestart%20(moisesBR).gmk

Bom proveito!

moisesBR

Número de Mensagens : 873
Idade : 40
Data de inscrição : 24/10/2009
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://inprovise.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por gustavo12g em Qui 29 Nov 2012, 14:07

Pessoal... tudo resolvido!!! Graças a vcs!!!
Muito obrigado a todos pelos esforços em me ajudar na dúvida.
Fico imensamente feliz de saber que nesse forum podemos compartilhar o conhecimento apenas pelo prazer de ajudar!!
É vendo tudo isso que ainda costumo dizer que acredito no ser humano.

gustavo12g

Número de Mensagens : 42
Data de inscrição : 27/08/2012
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Problemas em fazer room_restart()

Mensagem por Conteúdo patrocinado Hoje à(s) 08:33


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