Como se faz um save game no game maker studio

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

Como se faz um save game no game maker studio

Mensagem por Android Project em Qua 21 Ago 2013, 17:24

Eu poderia usar inis,mas sendo que é um RPG,e tem rooms persistentes para evitar por exemplo o jogador pegar duas caixas ou ter que passar um chefão mais de uma vez...
Tem algum tipo de save game no studio ou algum geito de salvar oque occorreu nas rooms persistentes?

Agradeço desde ja!! cheers 

Android Project

Ranking : Nota C
Número de Mensagens : 77
Data de inscrição : 20/08/2013
Notas recebidas : D+C+C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como se faz um save game no game maker studio

Mensagem por fredcobain em Qua 21 Ago 2013, 22:22

Cara, as funcoes de game_save e game_load foram retiradas pois não eram muito eficientes segundo a Yoyogames.

Já lí que eles vão voltar com elas remodeladas em versões futuras do GMS.

Por enquanto vc vai ter que usar ini mesmo... acho que vc sabe como fazer.


Se vc quiser gravar a posição de cada objeto, teria que ser algo desse tipo:

Código:


ini_open(working_directory+'\'+argument[0]);

while(_room != room_last+1) {
   
    for(_i=0; _i<instance_count; _i+=1) {
   
        _id = instance_id[_i];

        ini_write_string(string(room_get_name(_room)),
            string(_id.id),
           
            string(_id.object_index)+','+
            string(_id.x)+','+
            string(_id.y)+','+
            string(_id.depth)+','+
            string(_id.visible)+','+
            string(_id.solid)+','+
            string(_id.mask_index)+','+
            string(_id.persistent)+','+
            string(_id.speed)+','+
            string(_id.hspeed)+','+
            string(_id.vspeed)+','+
            string(_id.friction)+','+
            string(_id.direction)+','+
            string(_id.gravity)+','+
            string(_id.gravity_direction)+','+
            string(_id.sprite_index)+','+
            string(_id.image_index)+','+
            string(_id.image_speed)+','+
            string(_id.image_xscale)+','+
            string(_id.image_yscale)+','+
            string(_id.image_angle)+','+
            string(_id.image_blend)+','+
            string(_id.image_alpha)
            //more attributes here
       
        );
    }
   
    if (room_exists(_room+1)) {
        _room = room_next(_room);
    } else {
        break;
    }
}

ini_close();

Isso vai gerar um INI com um conteúdo do tipo:

[room2]
100004=1,416,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100003=1,384,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100002=1,384,352,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100001=1,160,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100000=0,192,128,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
[room1]
100004=1,416,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100003=1,384,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100002=1,384,352,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100001=1,160,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100000=0,192,128,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
[room0]
100004=1,416,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100003=1,384,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100002=1,384,352,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100001=1,160,320,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1
100000=0,192,128,0,1,0,-1,0,0,0,0,0,0,0,270,-1,20,1,1,1,0,16777215,1


Quando vc for carregar, vc tem os atributos de cada instância.

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

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