[MUITO IMPORTANTE] Problema com matrizes

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

[MUITO IMPORTANTE] Problema com matrizes

Mensagem por vitorfernandes13 em Sex 21 Fev 2014, 13:49

Com a ajuda do usuário Eudes (o nome dele ja vai estar nos agradecimentos Razz), consegui, em parte, implantar algo bem legal no meu jogo, mas, infelizmente da erro :(e como não queria atormentar ele, tentei resolver sozinho, mas, nao consegui  bounce 

O que eu quero:
Criar fases, sendo que cada uma possui 3 estrelas, e se o jogador pegar uma estrela, e voltar a jogar a fase novamente, a estrela não esteja mais lá, pq ele já pegou ela  Happy 

O que acontece:
"ERROR in
action number 1
of Create Event
for object obj_estrela:

Error in code at line 3:
    if(estrelas[i] = self.id)
       ^
at position 7: Unknown variable estrelas or array index out of bounds"

No objeto do controle principal, onde declaro variáveis, em seu Create coloquei:

Código:

//Fase e estrelas
globalvar fase;
    fase = 1; //Começa com fase 1
globalvar estrelas_fases;// Guardará as estrelas do player
    for(i=1; i<=30; i+=1;){ //Serão 30 fases
        estrelas_fases[i, 1] = 0;  //Se for 0 a estrela será criada
        estrelas_fases[i, 2] = 0;
        estrelas_fases[i, 3] = 0;
    }

No objeto "criador de estrelas" onde, eu defino em que lugar as estrelas serão criadas, em seu Create, eu coloquei:

Código:

var estrelas; //Variavel estrelas

if room_exists(Fase_1) {  //Se Fase 1 existe
    if(estrelas_fases[fase, 1] = 0) {  //A estrela 1, da primeira será criada
        in = instance_create(225, 615, obj_estrela);  
        estrelas[1] = in.id;
   } if(estrelas_fases[fase, 2] = 0) {
        in = instance_create(435,630, obj_estrela);
        estrelas[2] = in.id;
   } if(estrelas_fases[fase, 3] = 0) {
        in = instance_create(660,585, obj_estrela);
        estrelas[3] = in.id; }
}

Create do objeto estrela:

Código:

var numero;
for(i=1; i<=3; i+=1;){
  if(estrelas[i] = self.id)
    self.numero = i;
}

Colisão da estrela com player:

Código:

estrelas_fases[global.fase, self.numero] = 1; //A estrela colidida não será mais criada

Pelo que parece, o erro está na variavel estrelas, acho que porque ela nao é global, tentei colocar como global, e ainda deu erro  Evil or Very Mad 
--
Se alguem puder me ajudar, e analisar meu codigo: https://www.dropbox.com/s/swrltslaqzr4ydo/Draw%20World.gmk
Vou colocar o nome nos agradecimentos Very Happy

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por Eudes - Hyo em Sex 21 Fev 2014, 14:08

Fala ai. Vou responder, blz? haha
Esse "Unknown variable" é quando a variável não é encontrada mesmo.
Sempre que for usar uma variável de outro objeto, a gente tem que colocar o nome desse objeto antes dela. Eu devo ter errado nessa parte.

Ao invés de só usar a variável assim: 'estrelas[i]'
Vc coloca antes dela o nome do Objeto ao qual ela pertence:
criador de obj_estrelas.estrelas[i] ...


Última edição por Eudes - Hyo em Sex 21 Fev 2014, 14:16, editado 1 vez(es)

Eudes - Hyo

Ranking : Nota B
Número de Mensagens : 513
Idade : 32
Data de inscrição : 02/06/2009
Notas recebidas : E + B+B
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por vitorfernandes13 em Sex 21 Fev 2014, 14:14

Eudes - Hyo escreveu:Fala ai. Vou responder, blz? haha
Esse "Unknown variable" é quando a variável não é encontrada mesmo.
Ao invés de só usar a variável assim: 'estrelas[i]'

Vc coloca antes dela o nome do Objeto ao qual ela pertence:
criador de estrelas.estrelas[i] ...

Tenho sérias suspeitas que o GM possui um complô contra mim  bounce 
O erro continua... Sad vou tentar arrumar aqui

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por JoaoVanBlizzard em Sex 21 Fev 2014, 15:08

Por que você não habilita a opção persistent na room da fase, assim quando você pegar um objeto ele não estará mais la quando coletado.

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por vitorfernandes13 em Sex 21 Fev 2014, 16:53

JoaoVanBlizzard escreveu:Por que você não habilita a opção persistent na room da fase, assim quando você pegar um objeto ele não estará mais la quando coletado.

Até que dá certo, mas, nao é bem do jeito que eu queria, pq quando o jogador nao vai poder jogar a fase novamente, se passar ela  Mad 

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por chicoweb em Sex 21 Fev 2014, 19:58

Tira o persistent senão nada aparece na room denovo para ele jogar a mesma fase.

Tem conserto isso dai manim:

Corrige isso:

No obj_inicio, tem q declarar o array assim:
Código:

//Estrelas Total
global.estrelas[999] = 0
Isso faz com que as 999 primeiras estrelas fiquem com 0 no valor, poe a quantidade ai que vc quer no lugar do 999

No create do obj_estrela, vc tem que se referir a estrela como global, vc declarou ela como global ali em cima:

Código:
numero = 0; // Eu mudei isso aqui tb pq deu erro quando coloca var numero
for(i=1; i<=3; i+=1;){
 if(global.estrelas[i] = self.id)
   self.numero = i;
}

Agora, ele parou de pegar a estela la no game agora ve ai vc se consegue descobrir...

chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por JoaoVanBlizzard em Sex 21 Fev 2014, 22:21

Aconteceu isso comigo também, basta colocar instance_destroy() na colisão das estrelas com o personagem que tudo se resolve. Smile

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por Eudes - Hyo em Sab 22 Fev 2014, 10:56

O jeito que o Chico inicializa o vetor 'estrelas' realmente é necessário fazer.
Eu não tinha me ligado nisso, não pode deixar um index nulo se vc vai percorrer ele e comparar o valor.

Deixar ele global acho que resolve mesmo, como vc seta os valores dele pra 0, não tem problema usar o vetor em cada fase.

Eudes - Hyo

Ranking : Nota B
Número de Mensagens : 513
Idade : 32
Data de inscrição : 02/06/2009
Notas recebidas : E + B+B
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por vitorfernandes13 em Dom 23 Fev 2014, 18:55

Obrigado a todos, e desculpe pelo transtorno, parece que nesse jogo sempre dá algo errado, eu vou descontinuar o projeto, e futuramente se eu retornar nele, para Android, sem duvida nenhuma esse topico vai ser importante, mas, eu perdi a paciencia.

Muito obrigado,
Tópico RESOLVIDO

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por JoaoVanBlizzard em Seg 24 Fev 2014, 10:33

Eu antes pensava dessa maneira também, queria desistir dos meus projetos sempre que apareciam erros, mas hoje em dia com o jogo "submundo " vem sendo diferente, está aparecendo o tempo todo erros que chegam e me dar medo de adicionar coisas novas o pior que quando eu estiver fazendo o jogo "uma estranha noite " eu venha a passar por problemas parecidos, mas eu não estou mais com medo, uma dica muito boa é você fazer um rascunho do seu jogo e ir testando devagarzinho, eu por exemplo, sempre faço uma cópia do meu jogo quando faço upgrades nele, assim quando faço uma coisa e não da certo eu posso voltar atrás, outra ideia boa é tentar inventar scripts com coisas que você usará mais de uma vez no jogo, facilita muito.


quanto ao seu jogo, pense assim, não é qualquer um que consegue fazer jogos assim, então pense respire, faça rascunhos e tente outra vez, faça sempre mais de um arquivo do jogo, assim você pode revirar aos monte até achar uma forma econômica de fazer as coisas, o negócio é não se afobar viu. Happy

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por Eudes - Hyo em Seg 24 Fev 2014, 14:14

Concordo com o João. Vc vai encontrar erros em outros jogos tbm.
Vc só precisa parar se realmente não tiver mais interesse no projeto.

Talvez essa forma dinâmica que eu ti passei não seja a melhor .
Esses erros do tipo "Unknown variable" são comuns, e sempre é possível arrumar.
Em relação a Matriz, Realmente o GM gerou erro de index ao percorrer o vetor por laço For, e isso é algo que não acontece comigo com outras linguagens/compiladores (não sei).
Mas dá pra fazer estático tbm, index por index.

Ou então vc pode tentar deixar as Rooms Persistentes mesmo, e montar as fases a cada vez que entrar nela. Enfim, as possibilidades são grandes.

Eudes - Hyo

Ranking : Nota B
Número de Mensagens : 513
Idade : 32
Data de inscrição : 02/06/2009
Notas recebidas : E + B+B
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por vitorfernandes13 em Seg 24 Fev 2014, 16:13

Obrigado Eudes e Joao, eu nao vou desistir do jogo, so vou deixar ele um pouco de lado, eu me irritei muito com ele, quando estiver mais calmo eu retorno nele, antes desse acho que vou fazer algo mais simples, para eu ja ir pegando o jeito Very Happy

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [MUITO IMPORTANTE] Problema com matrizes

Mensagem por Conteúdo patrocinado Hoje à(s) 10:08


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