DÚVIDA: Strings e nomes de variaveis

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

DÚVIDA: Strings e nomes de variaveis

Mensagem por Mikasuki em Ter 05 Maio 2015, 17:16

Boa tarde galera!

Seguinte: trabalho com arquivos .ini no meu projeto. Uma das coisa que eu salvo nele são index de sprites. Faço isso por que o meu projeto possui centenas de personagens, e cada personagem tem várias cores de roupas, cabelo, etc. Cada personagem também tem uma sprite para cada animação: andando, pulando, batendo, abaixando, etc. Tudo dá uma 5 mil sprites!

Voltando ao arquivo .ini: eu salvo nele apenas as sprites de animação "parado". Em tempo de programação, eu pego o index dessa sprite e defino a qual família de esprite ela pertence (cor da roupa, cor do cabelo).

Acontece que o GMS, ao contrário do GM8, nem sempre usa as mesmas index tanto para sprites quanto para objetos. Como assim?!

Explicando: se eu rodar o jogo uma vez, o GMS atribui o index "3" a sprite "X". Se eu rodar de novo, o GMS pode atribuir o index "65454" a mesma sprite "X"!

Então não é muito confiável trabalhar diretamente com o número dos index. Minha dúvida é a seguinte: como eu faço para reconhecer uma string (já que o .ini trabalha com strings e reals) como o nome de uma variável em tempo de programação?

Explicando (ou tentando): eu quero salvar no .ini uma string "sprite_parado" e quero usar essa string como o nome da variável sprite_parado (que é um real).

Alguém tem ideia?

Mikasuki

Número de Mensagens : 33
Data de inscrição : 28/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por itarodrigo em Ter 05 Maio 2015, 17:43

as sprites ja estao compiladas no app ou voce importa?

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por Mikasuki em Ter 05 Maio 2015, 17:55

Eu não importo as sprites não. Uso as do projeto mesmo.

Mikasuki

Número de Mensagens : 33
Data de inscrição : 28/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por itarodrigo em Ter 05 Maio 2015, 22:56

eu tambem uso um sistema parecido com o seu, mas ao inves de arquivo .ini, uso um banco de dados mysql.

quando eu pego as informacoes (cabelo, olho, corpo, etc), uso assim:

Evento Create
Código:
cabelo = 0;
olho = 0;
corpo = 0;

Evento que lê os dados (no meu caso é http)
Código:
cabelo = "informação lida";
olho = "informação lida";
corpo = "informação lida";

Evento draw
Código:
draw_sprite_ext(sp_cabelo,real(cabelo),x,y,1,1,0,c_white,1);
draw_sprite_ext(sp_olho,real(olho),x,y,1,1,0,c_white,1);
draw_sprite_ext(sp_corpo,real(corpo),x,y,1,1,0,c_white,1);

obs: uso uma sprite com todos os corpos, outra com todos os olhos, etc.
obs2: na função de desenhar a sprite, preciso converter o número pra real, pois ele lê como string e só retorna zero

faz uns testes aí e vê de funfa.

abraço.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por theguitarmester em Qua 06 Maio 2015, 10:00

Pelo que eu saiba, ele deixa sempre o mesmo endereço para a sprite(e outros recursos), mas diferente do 8, ele não coloca os endereços por ordem de chegada, e sim por ordem em que aparece na lista. EX:

Criei a 1º sprite chamada spr0; depois spr1; depois spr2. Coloquei a spr2 na frente da spr1, ficando assim visualmente:

Action Sprite SPRITES<
spr0
spr2
spr1
>


No GM8, a ID delas será por assim:
spr0 = 0
spr2 = 2
spr1 = 1

Já no GMS, ficará assim:
spr0 = 0
spr2 = 1
spr1 = 2


Mas, nenhum deles troca a ID de uma sprite criada antes do jogo ser iniciado.


O que pode ser trocado são as IDs de intâncias.

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por itarodrigo em Qua 06 Maio 2015, 10:09

Pra eu poder te ajudar melhor, me informe como seu programa recebe a informação do arquivo .ini, qual valor a variável recebe (0 ou spr0)?

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por Mikasuki em Qua 06 Maio 2015, 11:22

Então, as sprites ficam salvas no arquivo .ini nesse formato por exemplo: "3254.0000" (como um real). Só que eu quero me referir a ela não como este 3254 (que é o index), mas como "sprite_personagem" (que é o nome da variável). O sistema que você me apresentou é muito bom, mas não serve no meu projeto.

EDIT:

Quanto ao Theguitarmaster: sim, ele muda as index. Eu mesmo testei. Muda principalmente quando você cria uma nova sprite ou object. Ele não segue uma sequencia necessariamente, por exemplo: tenho 10 objects, criando outro, ele não atribui o index 11, ele atribui um index aleatório e sempre muda os index anteriores.

Antes de usar o GMS, eu usava o GM8. Eu fiz a migração e concertei alguns comandos que deixaram de ser usados. Não sei se isso influencia neste comportamento estranho do GM. Mas de qualquer forma, o que eu quero é algo como o comando "execute_code" que tinha no GM8 e descontinuou no GMS (rodava uma string como um comando GML, dessa maneira, eu poderia salvar as sprites como nome de variável).

Mikasuki

Número de Mensagens : 33
Data de inscrição : 28/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por itarodrigo em Qua 06 Maio 2015, 18:02

realmente, creio que voce terá que mudar a logica do seu sistema pra poder funcionar, pois assim, nao sei se é possível.

ou diga +- o que seu jogo faz, pra ver se alguem lhe dá uma dica com uma lógica diferente

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por Neutral em Qua 06 Maio 2015, 20:09

Eu não entendi bem o que você quer fazer e pq vc quer usar uma string como nome de variável, e isso nem é mais possível no GMS. Aliás, essas funções do GM8 tipo execute_code são extremamente lentas e por isso é bom se manter bem longe delas, até porque de um modo geral SEMPRE existe uma alternativa melhor e mais limpa do que usá-las.

Neutral

Ranking : Nota A
Número de Mensagens : 268
Data de inscrição : 16/10/2011
Notas recebidas : A
Reputação : 7
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por Mikasuki em Qui 07 Maio 2015, 14:37

Depois de quebrar um pouco a cabeça, consegui encontrar um outro caminho que dá no mesmo destino.

Obrigado a todos pela atenção!

Mikasuki

Número de Mensagens : 33
Data de inscrição : 28/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por itarodrigo em Qui 07 Maio 2015, 14:47

Mikasuki escreveu:Depois de quebrar um pouco a cabeça, consegui encontrar um outro caminho que dá no mesmo destino.

Obrigado a toidos pela atenção!

Isso mesmo, temos que aproveitar as funções que o sistema nos disponibiliza e adapta-las às nossas necessidades.

Esse é o segredo da lógica da programação.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: DÚVIDA: Strings e nomes de variaveis

Mensagem por Conteúdo patrocinado Hoje à(s) 00:27


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