GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Retorno da GMBR!!!
por theguitarmester Ter 19 Mar 2024, 22:38

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Voltar no tempo

+2
PedroX
Luiz A. Oliveira
6 participantes

Ir para baixo

Voltar no tempo Empty Voltar no tempo

Mensagem por Luiz A. Oliveira Seg 18 Jul 2011, 13:43

Eae pessoal, gostaria de saber como faço para armazenar os últimos 5 segundos de jogo para quando pressionar uma tecla poder voltar atras, mais ou menos como no Prince of Pérsia.
Luiz A. Oliveira
Luiz A. Oliveira

Games Ranking : Nota C

Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Reputação : 5
Número de Mensagens : 914
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://luizgm.blogspot.com/

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por PedroX Seg 18 Jul 2011, 14:00

Se só o player for voltar no tempo, é simples.
Se os inimigos também voltarem, não vai ser dificil, mas vai ficar mais lento.

CREATE
Código:
posicao=0;
meu_x=0;
meu_y=0;
voltar=0;
tempo_grava=5*room_speed;

STEP:
Código:

if !voltar{
posicao+=1;
if posicao>tempo_grava posicao=0;
meu_x[posicao]=x;
meu_y[posicao]=y;
}
if keyboard_check_pressed(vk_space){
voltar=1;
posicao=0;
}
if (voltar){
x=meu_x[tempo_grava-posicao];
y=meu_y[tempo_grava-posicao];
posicao+=1;
if posicao>tempo_grava {voltar=0; posicao=0;}
}

Testa ai. Ele só vai voltar na posição.
Dá para gravar o sprite, o image_index, e outras coisas.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por Luiz A. Oliveira Seg 18 Jul 2011, 14:07

ERROR in
action number 3
of Step Event
for object obj_nave:

Error in code at line 12:
x=meu_x[tempo_grava-posicao];
^
at position 4: Unknown variable meu_x or array index out of bounds

Apareceu isso, mais acho que posso resolver
Luiz A. Oliveira
Luiz A. Oliveira

Games Ranking : Nota C

Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Reputação : 5
Número de Mensagens : 914
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://luizgm.blogspot.com/

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por PedroX Seg 18 Jul 2011, 14:09

Acho que você deve esperar pelo menos 5 segundos antes de apertar o botão.
É que o valor ainda não existia.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por Luiz A. Oliveira Seg 18 Jul 2011, 14:33

Ficou daora, mais eu queria tipo um room_speed reverso (Eu disse tipo, não que isso exista) daí tudo, exatamente tudo voltaria (Até objs ja destruidos)
Luiz A. Oliveira
Luiz A. Oliveira

Games Ranking : Nota C

Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Reputação : 5
Número de Mensagens : 914
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://luizgm.blogspot.com/

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por PedroX Seg 18 Jul 2011, 14:42

Seria bem complicado.
Você teria que desativar as instâncias, em vez de destrui-las.
Você salvaria todas as informações: quais instancias estão na tela, suas posicoes, suas sprites, entre outros.
Depois você leria as informações.
Você poderia usar um indice para cada instancia.
Ex:
sprite[1]=sprite_do_player
xx[1]=x_do_player
sprite[2]=sprite_da_instancia_1_do_inimigo;

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por GameMakerTutoriais Seg 18 Jul 2011, 18:35

Só pra complementar, você não precisa necessariamente de fazer isso objeto por objeto, também daria pra usar um with (all), e usar isso em todas as instâncias de uma só vez.

Além disso, teria que ver a necessidade de armazenar ou não estados de backgrounds, timelines, etc...
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por Luiz A. Oliveira Seg 18 Jul 2011, 18:46

To tentando fazer, mais não consigo!!!
Acho que não entendi, poderia me fazer uma engine?
Quando uso o with() mostra que algumas variáveis não existem.
Luiz A. Oliveira
Luiz A. Oliveira

Games Ranking : Nota C

Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Reputação : 5
Número de Mensagens : 914
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://luizgm.blogspot.com/

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por PedroX Seg 18 Jul 2011, 18:58

Porque os objetos precisam ter essas variaveis.
Se não tiver, você pode fazer:
Código:

with(all){
if variable_local_exists('variavel')
{//fazer algo com a variavel}
}

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por GameMakerTutoriais Seg 18 Jul 2011, 19:06

.


Última edição por brendan640 em Sáb 08 Jun 2013, 20:35, editado 1 vez(es)
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por Lauro Seg 18 Jul 2011, 19:13

não é mais fácil criar um sistema de save??
por exemple, no evento create insere o D&D save game e no value insere "tempo", depois insere alarm0, steps=50 no evento alarm0 insere novamente o save, e o D&D alarm também.
No evento release key control, insira load game="tempo"
Espero que ajude.
Lauro
Lauro

Games Ranking : Nota D

Notas recebidas : C+D
Data de inscrição : 09/11/2010
Reputação : 11
Número de Mensagens : 855
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por diego333 Seg 18 Jul 2011, 19:24

Crie um Objeto Controlador, e coloque nele
Create Event
Código:

Voltando = false;
End Step
Código:

if(Voltando)
{
    with(all)
    {
        if(variable_local_exists("SPRITE_INDEX"))
        {
            sprite_index = ds_stack_pop(SPRITE_INDEX);
            x = ds_stack_pop(X);
            y = ds_stack_pop(Y);
        }
    }
}
else
{
    with(all)
    {
        if(variable_local_exists("SPRITE_INDEX"))
        {
            ds_stack_push(SPRITE_INDEX,sprite_index);
            ds_stack_push(X,x);
            ds_stack_push(Y,y);
        }
    }
}

e em cada objeto que vai voltar no tempo , coloque
Create Event
Código:

SPRITE_INDEX = ds_stack_create();
X = ds_stack_create();
Y = ds_stack_create();


e para voltar no tempo é só mudar a variavel "Voltando" para true
avatar
diego333

Data de inscrição : 06/10/2010
Reputação : 3
Número de Mensagens : 84
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por Markituh Seg 18 Jul 2011, 19:24

Usando um sistema de save você não poderia voltar cada step feito no jogo, apenas na hora que salvou. E se você salvar o jogo a cada step, poderia deixar o jogo um pouco lento(já que é necessário fazer operações com arquivos). O jeito do Pedro Henrique é o mais correto para se fazer isso, é trabalhoso porém dá resultados satisfatórios.

Outra coisa que também seria legal armazenar seria a image_index, assim fica mais realista tongue Sem falar das peculiaridades que o Ninja citou, como estados de backgrounds, timelines, paths, variáveis locais do objeto, variáveis globais etc e tal. É BASTANTE trabalhoso, mas pelo menos é o jeito usado no Prince of Persia(sem falar que é o único jeito xD)
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por GameMakerTutoriais Seg 18 Jul 2011, 19:33

.


Última edição por brendan640 em Sáb 08 Jun 2013, 20:36, editado 1 vez(es)
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por Luiz A. Oliveira Seg 18 Jul 2011, 19:43

Aqui o jeito do diego quando volta ao estado inicial depois fica y=0,x=0 e a sprite some
Luiz A. Oliveira
Luiz A. Oliveira

Games Ranking : Nota C

Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Reputação : 5
Número de Mensagens : 914
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://luizgm.blogspot.com/

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por PedroX Seg 18 Jul 2011, 19:48

O jeito do diego333 é bem interessante.
Não sabia para que servia essa função.
De qualquer modo, luiz, você teria que gravar tudo o que puder, depois reproduzir.

Off:

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por GameMakerTutoriais Seg 18 Jul 2011, 20:11

luiz_100juizo escreveu:Aqui o jeito do diego quando volta ao estado inicial depois fica y=0,x=0 e a sprite some

Não sei, acho que é porque ainda falta gravar os valores no create, coloca lá no create e tenta aí:

Código:

ds_stack_push(SPRITE_INDEX,sprite_index);
ds_stack_push(X,x);
ds_stack_push(Y,y);

Se não der então é porque o último 'pop' tá puxando o último valor e deixando 0 (zero) no lugar. Se for isso, é só você controlar "quanto" você quer que ele volte!
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por Luiz A. Oliveira Ter 19 Jul 2011, 09:18

Continua do mesmo jeito
Nunca tinha visto essa função ds_... por isso não posso a manipular sozinho.
PLZ me ajudem!!!
Luiz A. Oliveira
Luiz A. Oliveira

Games Ranking : Nota C

Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Reputação : 5
Número de Mensagens : 914
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://luizgm.blogspot.com/

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por diego333 Ter 19 Jul 2011, 14:03

Código:

if(Voltando)
{
    with(all)
    {
        if(variable_local_exists("SPRITE_INDEX"))
        {
            sprite_index = ds_stack_pop(SPRITE_INDEX);
            x = ds_stack_pop(X);
            y = ds_stack_pop(Y);
        }
    }
}
else
{
    with(all)
    {
        if(variable_local_exists("SPRITE_INDEX"))
        {
            if(ds_stack_empty(SPRITE_INDEX))
            {
                other.Voltando = false;
                break;
            }
            else
            {
                ds_stack_push(SPRITE_INDEX,sprite_index);
                ds_stack_push(X,x);
                ds_stack_push(Y,y);
            }
        }
    }
}
tenta mudar isso , OBS ão sei se vai pegar , não tenho game maker
avatar
diego333

Data de inscrição : 06/10/2010
Reputação : 3
Número de Mensagens : 84
Prêmios : Voltar no tempo Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

Voltar no tempo Empty Re: Voltar no tempo

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos