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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
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 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Como se faz um save game no game maker studio

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
Ranking : Sem avaliações
Data de inscrição : 14/04/2011
Número de Mensagens : 691
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 162

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

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

em Qua 21 Ago 2013, 22:22
Reputação da mensagem: 100% (1 votos)
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.
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