GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Qui 18 Abr 2024, 18:28

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39


Aumentando o tamanho da array

4 participantes

Ir para baixo

Aumentando o tamanho da array Empty Aumentando o tamanho da array

Mensagem por elicray Qui 03 Fev 2011, 15:16

Bem, dei uma pesquisa sobre arrays pelo fórum e encontrei apenas tutoriais muito básicos que só diziam como criar, o que eram e como as escrever na tela --\' Nenhum deles respondia à minha dúvida...

1º No meu jogo tenho uma array que vai armazenar o id de todos os objectos raios (até que eles sejam destruidos) criados para que depois o inimigo cheque as posições de todos.

Neste caso, eu tenho um "problema" meio chato... Caso os objectos excedam o tamanho da array, o GM apresenta um erro... Como a uma certa parte do jogo as explosões vão ser grandes, criando cerca de 30 raios, e poderei por por exemplo 7 bombas, iria ter de criar uma array com 210 "secções"... Agora imagine isto para 4 tipos de explosões... Daria cerca de 840 "secções" ressaca

A minha pergunta é se não há forma de o GM ir criando mais "secções" conforme o necessário???

Tenho mais algumas dúvidas sobre arrays, mas nada de que esteja a precisar usar...
avatar
elicray

Data de inscrição : 20/12/2010
Reputação : 0
Número de Mensagens : 109
Prêmios : Aumentando o tamanho da array Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aumentando o tamanho da array Empty Re: Aumentando o tamanho da array

Mensagem por GameMakerTutoriais Sex 04 Fev 2011, 09:33

1º No meu jogo tenho uma array que vai armazenar o id de todos os objectos raios (até que eles sejam destruidos) criados para que depois o inimigo cheque as posições de todos.

Alternativamente, você poderia checar sem o array:

Código:
for (n = 0; n < instance_count; n += 1)
{
      if object_get_name(instance_id[n].object_index) = 'nome_do_objeto'
      {
              pega_posicao_x := instance_id[n].x;
              pega_posicao_y := instance_id[n].y;
      }
}

Neste caso, eu tenho um "problema" meio chato... Caso os objectos excedam o tamanho da array, o GM apresenta um erro...

Ele pode exceder de duas formas. A primeira é não econtrando o máximo exato de objetos e a segunda é excedendo o limite de 31999.

A minha pergunta é se não há forma de o GM ir criando mais "secções" conforme o necessário???

Você pode usar um array bidimensional, ou seja, com dois índices. O primeiro índice para o tipo de explosão e o segundo para os raios, por exemplo:

Código:
guarda_raio[tipo, raio_id];

Outros exemplos de array bidimensional:

Código:
chave[10, 20];
vida[80, 128];
cor[cor_id, r];
cor[cor_id, g];
cor[cor_id, b];

Outra dica é usar a variável interna instance_count que retorna o número de instâncias na room. Isso pode te ajudar a controlar o array com mais facilidade. Veja o exemplo de como eu usei ele aí em cima. Boa sorte.
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Aumentando o tamanho da array Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aumentando o tamanho da array Empty Re: Aumentando o tamanho da array

Mensagem por itallo Sex 04 Fev 2011, 12:23

cara você pode usar listas
//create
//raios = ds_list_create()///raios

//bombas[0] = ds_list_create()///bombas

//explo[0] = ds_list_create()/*

//na hora de criar o raio vc coloca isso:

nnn = instance_create(x,y,raio)
ds_list_add(raios[0],nnn.id) //adiociona id do raio na lista raios[0]

nnn = instance_create(x,y,choose(bomba1,bomba2,bomba3....))
ds_list_add(bombas[0],nnn.id)//adiociona id da bomba na lista bombas[0]

nnn = instance_create(x,y,choose(explo1,explo2,explo3,explo4))
ds_list_add(explo[0],nnn.id)//adiociona id da explosão na lista explo[0]

fica mais ou menos assim.

procure tutos a relacionados a isso.
eu particularmente prefiro usar lists que arrays, mesmo sendo um pouco mais complexo, mas não tem limite de valor, que eu saiba.

a array[0] pega apenas o valor numerico que indica qual é a lista, na ordem criar.

itallo
itallo

Games Ranking : Nota C

Notas recebidas : B - D
Data de inscrição : 26/08/2009
Reputação : 12
Número de Mensagens : 970
Prêmios : Aumentando o tamanho da array Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aumentando o tamanho da array Empty Re: Aumentando o tamanho da array

Mensagem por saim Sex 04 Fev 2011, 15:05

na hora de criar o raio, adiciona 1 à variável que contém o índice da array.
>create<
Código:
tamanho_da_array=0
>evento que cria o raio<
Código:
instance_create(x,y,obj_raio)
raio_x[tamanho_da_array]=x
raio_y[tamanho_da_array]=y
tamanho_da_array+=1

No fim, o tamanho_da_array será 1 unidade maior que o maior índice e conterá o número de elementos da array (já que o primeiro elemento é 0).

Mas não entendi o que você quer fazer. Uma vez que o objeto for destruído, a id não te dá mais informação nenhuma de posição (por isso sugeri armazenar as posições x/y em duas arrays).

Se for algo que você vai usar só em determinado momento, tipo só depois que os raios forem destruídos, você pode armazenar tudo na mesma array, tipo o raio_x[0] pode ter um valor num momento e depois mudar de valor.

saim
saim

Games Ranking : Nota B

Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios : Aumentando o tamanho da array Empty

Medalhas x 1 Tutoriais x 6 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 3

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Aumentando o tamanho da array Empty Re: Aumentando o tamanho da array

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos