Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Não consigo acessar uma variável dentro da outra? (varriavel1.variavel2)

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Yakongu
Novato
Novato
Reações: 0
Mensagens: 2

Não consigo acessar uma variável dentro da outra? (varriavel1.variavel2)

Mensagem por Yakongu » Dom Mar 05, 2017 8:34 pm

Com certeza isso é um bug. Eu estou tentando acessar uma variável que está dentro de outra a variável "s"
não consigo acessá-la, o game maker me retorna um erro com esse código no "create".

Basicamente o que fiz foi criar a variável "Anim", e nessa variável anim criei outra chamada "s", este  "s" precisa estar dentro da variável "Anim", é essecial 
para que minha estrutura fique organizada.
Obs a variável Anim, NÃO SE REFERE A UM OBJETO. Ela é apenas uma variável comum que segura números. O problema aqui é que não consigo acessar a variável "s"

f=anim_index.->s <- esta variável. O game maker retorna este erro:

Código: Selecionar todos

 Execution Error - Variable Get 0.s(100111, -2147483648)

 at gml_Object_objSonic_CreateEvent_2 (line 3) - f=Anim.s
O problema, é que ao fazer isso com um projeto vazio. Criei um projeto do zero, e então tentei isso, e funcionou sem problemas.
Pude acessar a variável e colocar o valor no "s" normalmente, mas ao usar esta engine que estava meu projeto continuo recebendo esse erro, mesmo se eu "copiar e colar"
o código que escrevi. 

Eu gostaria muito de ajuda com o problema, obrigado a todos ^^

Create:

Código: Selecionar todos

Anim=0
Anim.s=1
anim_index=Anim
f=anim_index.s

Avatar do usuário
gabrielsch
Colaborador
Colaborador
Reações: 0
Mensagens: 234

Re: Não consigo acessar uma variável dentro da outra? (varriavel1.variavel2)

Mensagem por gabrielsch » Dom Mar 05, 2017 10:29 pm

Não é assim que as coisas funcionam, variáveis não podem conter outras variáveis. Existe algo parecido com o que você quer que em programação se chama ponteiro, é um tipo de variável que aponta para outra, você pode dar uma lida melhor no artigo da Wikipédia sobre o assunto.
Game Maker não suporta ponteiros e os tipos de variáveis são apenas string ou real. A solução para o seu problema é criar um objeto para armazenar essas variáveis, e portanto utilizar a sintaxe que você está usando ou, utilizar Data Structures, mais especificamente ds_map.
Imagem

Avatar do usuário
Yakongu
Novato
Novato
Reações: 0
Mensagens: 2

Re: Não consigo acessar uma variável dentro da outra? (varriavel1.variavel2)

Mensagem por Yakongu » Seg Mar 06, 2017 12:47 am

Ok obrigado gabrielsch, eu pensei em usar data structures, inclusive comecei tentando achar uma solução com elas, e pelo visto tenho a confirmação agora. Obrigado pela resposta, podem trancar.(mas a propósito, o gamemaker 8 antigo eu fazia isso e funcionava, criava um sistema de animação inteiro usando isto)

Avatar do usuário
Lighter
Novato
Novato
Reações: 0
Mensagens: 1
Localização: Joinville - SC

Re: Não consigo acessar uma variável dentro da outra? (varriavel1.variavel2)

Mensagem por Lighter » Seg Mar 06, 2017 8:03 pm

Essa sintaxe até parece orientação a objeto, não é possível no gamemaker. Não aconselho criar um objeto apenas para armazenar variáveis, pois são complexos e pesados para serem processados. Acho que a melhor maneira é usar até mesmo um array, ou usar DS.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante