Conectar-se
Quem está conectado
19 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 18 Visitantes

Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 27/08/2012
Número de Mensagens : 42
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Problemas em fazer room_restart()

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?
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Re: Problemas em fazer room_restart()

em Qua 28 Nov 2012, 19:42
Simplismente acrecente room_restart na colisão!
Código:
vidas -=1
room_restart()
avatar
Data de inscrição : 27/08/2012
Número de Mensagens : 42
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: Problemas em fazer room_restart()

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.
avatar
Data de inscrição : 09/07/2011
Número de Mensagens : 646
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: Problemas em fazer room_restart()

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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: Problemas em fazer room_restart()

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.
avatar
Data de inscrição : 09/07/2011
Número de Mensagens : 646
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: Problemas em fazer room_restart()

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.
avatar
Ranking : Nota B
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Número de Mensagens : 1925
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: Problemas em fazer room_restart()

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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: Problemas em fazer room_restart()

em Qua 28 Nov 2012, 21:03
Infelizmente dos os dois jeitos nao funcionaram.
avatar
Ranking : Nota B
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Número de Mensagens : 1925
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: Problemas em fazer room_restart()

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
avatar
Data de inscrição : 09/07/2011
Número de Mensagens : 646
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: Problemas em fazer room_restart()

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!
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Re: Problemas em fazer room_restart()

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.
avatar
Data de inscrição : 09/07/2011
Número de Mensagens : 646
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: Problemas em fazer room_restart()

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.
avatar
Data de inscrição : 24/10/2009
Número de Mensagens : 873
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://inprovise.blogspot.com/

Re: Problemas em fazer room_restart()

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

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: Problemas em fazer room_restart()

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