Inimigos voltarem aonde estavam (checkpoint)

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

Inimigos voltarem aonde estavam (checkpoint)

Mensagem por ralk2 em Sab 14 Fev 2015, 19:12

Boa noite, galera!

Estou criando um checkpoint e, ele ja funciona, porém os inimigos e objetos que o player mover não voltam ao local aonde estavam. Como fazer voltar tudo como era? tipo um restart_room();

tentei fazer usando o restart_room, mas não foi possivel, ele não mantém as posições salvas no checkpoint.

valew!!!

ralk2

Número de Mensagens : 17
Data de inscrição : 03/11/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Inimigos voltarem aonde estavam (checkpoint)

Mensagem por WellingtonBecker em Sab 14 Fev 2015, 19:36

Amigo, que código utilizou para o checkpoint do player?

WellingtonBecker

Ranking : Nota D
Número de Mensagens : 820
Idade : 35
Data de inscrição : 09/05/2013
Notas recebidas : D
Reputação : 105
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Inimigos voltarem aonde estavam (checkpoint)

Mensagem por AG Hydra em Sab 14 Fev 2015, 21:07

Olá ralk2, tudo bem?

bom, o melhor seria você nos exibir o script que está usando para o sistema de check-point. entretanto, pode-se calcular o sistema mentalmente. o mesmo não é tão complexo, o sistema é basicamente... armazenar informações, como a posição dos eixos dos objetos desejados, para desenvolvermos um sistema desse modo, o melhor a se usar seria variáveis. veja como seria o sistema:

no Create Event do inimigo:
Código:

vPosInimigo[0]=x; //índice de array representante do eixo "x" do inimigo
vPosInimigo[1]=y; //índice de array representante do eixo "y" do inimigo

no Step Event do inimigo:
Código:

with(oPlayer) //Inserindo script no player
{

//Colisão Artificial

     if (distance_to_object(oCheckPoint)<1) //caso a distância do objeto representante do check-point para o objeto Player seja menor que "1"
     {
          oInimigo.vPosInimigo[0]=oInimigo.x; //índice de array representante do eixo "x" do Inimigo, recebe o atual valor do mesmo
          oInimigo.vPosInimigo[1]=oInimigo.y; //índice de array representante do eixo "y" do Inimigo, recebe o atual valor do mesmo
          vPosPlayer[0]=x; //índice de array representante do eixo "x" do Player, recebe o atual valor do mesmo
          vPosPlayer[1]=y; //índice de array representante do eixo "y" do Player, recebe o atual valor do mesmo
     }
}

if (keyboard_check_pressed(ord('R'))) //caso pressionado o botão "R"
{
     x=vPosInimigo[0]; //recebe no eixo "x", o valor armazenado anteriormente
     y=vPosInimigo[1]; //recebe no eixo "y", o valor armazenado anteriormente
     with(oPlayer)
     {
          x=vPosPlayer[0];
          y=vPosPlayer[1];
     }
}

no Create Event do Player:
Código:

vPosPlayer[0]=x;
vPosPlayer[1]=y;

bom, esse seria o sistema, porém... você deve adaptá-lo para sua situação. não testei o mesmo. uma observação, seria que caso o Player fique para sempre, em uma distância a menos de 1 pixel do objeto representante do check-point (Colisão Artificial), ele sempre armazenaria a posição dos objetos desejados/determinados, portanto, tenha cuidado para não confundir o mesmo sistema com um bug. outra observação, seria que caso pressionado o botão "R" antes do Player colidir (artificialmente), os objetos desejados/determinados voltariam para a suas posições iniciais, portanto, este também não é um bug. espero ter ajudado, qualquer dúvida me informe. até.

AG Hydra

Número de Mensagens : 130
Data de inscrição : 23/04/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Inimigos voltarem aonde estavam (checkpoint)

Mensagem por Conteúdo patrocinado Hoje à(s) 22:30


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