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.

Ajuda em Arrays

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
MinnoP
Membro
Membro
Reações: 0
Mensagens: 25

Ajuda em Arrays

Mensagem por MinnoP » Qui Jul 14, 2016 1:47 am

Eai pessoal, de boa?
Então, acabei empacando(como sempre) no meu projeto, e dessa vez na parte que eu estava criando meus menus, consegui criar de boa o menu inicial e (parcialmente) a das escolhas das fases.
O problema é o seguinte, quero que a Fase 2 fique travada até o player completar a Fase 1(todos nós queremos) como exatamente eu faço isso? Tentei por arrays, mas minha tentativa foi pífia, pois não consegui entender muito bem isso, alguém consegue me explicar?
OBS: Criei apenas 1 objeto para a seleção de fases e fui mudando o image_index individualmente no "creation code" de cada objeto na room, isso está certo?
Meu código:

Código: Selecionar todos

//create do obj_controle 

global.nextroom[0] = false;
global.nextroom[1] = false;
global.nextroom[2] = false;



//creation code do obj da fase 2

if (global.nextroom[0] = true) {

    image_index = 1;

}



//collision event da chegada(que é o fim da fase)

if room = rm_01 {             

   global.nextroom[0] = true;

}



erro que da ao ir a room do menu de escolha das fases

trying to index a variable which is not an array
 at gml_RoomCC_rm_menu_02_17_Create (line 4) - if (global.nextroom[0] = true) {
    image_index = 1;
}

Avatar do usuário
TRFN95
Programador
Programador
Reações: 0
Mensagens: 31
Localização: BH-MG
Contato:

Re: Ajuda em Arrays

Mensagem por TRFN95 » Qui Jul 14, 2016 7:25 am

Você errou por um pequeno detalhe este codigo, e possivelmente seja ele todo o comprometimento do funcionamento da logica que deveria ser estruturada.

Código: Selecionar todos


//errado: if (global.nextroom[0] = true) {
//certo
 if (global.nextroom[0] == true) {

    image_index = 1;

}



//collision event da chegada(que é o fim da fase)

// errado: if room = rm_01 {             
//certo
if( room == rm_01) {

   global.nextroom[0] = true;

}

Acho que seria so este o problema.
Ate mais

Avatar do usuário
chicoweb
Membro
Membro
Reações: 0
Mensagens: 135

Re: Ajuda em Arrays

Mensagem por chicoweb » Qui Jul 14, 2016 3:29 pm

Só uma sugestão também se não for o que o TRFN falou:

O objeto obj_controle pode ainda não ter criado os arrays, isso acontece muito porque o gm cria os objetos na room ao mesmo tempo (Sabemos que não é bem isso, mas so consigo explicar dessa forma).

Eu enfrentei muitos problemas nesse sentido e não sabia onde tava o erro, então o que eu fiz foi criar uma room chamada room_load, é uma room preta com um objeto chamado obj_global_iniciar, nesse objeto teria a criação do vetor global.nextroom[0] por exemplo e tudo que eu quero criar nas variaveis globais.

E onde eu chamo essa room? em lugar nenhum simplesmente deixe ela como a primeira room a ser rodada
no game.

Ah e o mais importante, no final da create do objeto obj_global_iniciar tem que colocar isso:

Código: Selecionar todos

room_goto_next()
Assim você elimina qualquer ocorrencia desse tipo e só precisa editar o obj_global_iniciar quando quiser cria variaveis globais.
Meus games:
Jump James - Aventura/Estratégia/Robô
Freedom of Pala Pala - Aventura/Estratégia
Prisioneira - RPG/Bloco/Ação

Avatar do usuário
MinnoP
Membro
Membro
Reações: 0
Mensagens: 25

Re: Ajuda em Arrays

Mensagem por MinnoP » Qui Jul 14, 2016 8:28 pm

TRFN:

Muito obrigado pela dica, mas eu já tinha visto em outros tutorias = ou == não fazem diferença em GML, mas em outras linguagens meu codigo estaria todo errado mesmo.
Obrigado de novo e eu vou prestar mais atenção em meus códigos para diferenciar isso 

Chicoweb:

Esse realmente foi o problema e com a "rm_load" foi facilmente resolvido, muito obigado pela dica

Trancado

Quem está online

Usuários navegando neste fórum: Semrush [Bot] e 2 visitantes