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 
avatar
Android Project

Ranking : Nota C
Notas recebidas : D+C+C
Data de inscrição : 20/08/2013
Número de Mensagens : 77
Insígnias de JAM :

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

Ver perfil do usuário

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

Ranking : Sem avaliações
Data de inscrição : 14/04/2011
Número de Mensagens : 691
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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