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
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 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

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16


Como criar um vetor de objetos?

4 participantes

Ir para baixo

Como criar um vetor de objetos? Empty Como criar um vetor de objetos?

Mensagem por Mikasuki Qua 31 Jul 2013, 20:43

Boa noite a todos. Me desculpem se esta já estiver respondida, mas não encontrei nada a respeito nem na net e nem aqui no forúm.

Pessoal, seguinte: alguém sabe se é possível e como se cria um vetor de objetos? Preciso de um vetor que tenha vários objetos nos seus índices e que eu possa chamar alguma variável de qualquer um desses objetos apenas apontando o vetor e o indíce. Por exemplo:

for x=1 to 10{
vetorDeObjetos[x].variavelDoObjeto=valor
}

Alguém sabe?
Mikasuki
Mikasuki

Data de inscrição : 28/01/2010
Reputação : 0
Número de Mensagens : 33
Prêmios : Como criar um vetor de objetos? 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

Como criar um vetor de objetos? Empty Re: Como criar um vetor de objetos?

Mensagem por GameMakerTutoriais Qua 31 Jul 2013, 23:21


Objetos mesmo? Porque se for instância, o Game Maker já tem um vetor interno, que é chamado por "instance_id":

Código:
instance_id[numero]

O comprimento do vetor vai depender da quantidade de instâncias, lógico. Isso você consegue com a variável "instance_count". Dê uma olhada no help, porque de cabeça eu não lembro 100%.
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Como criar um vetor de objetos? 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

Como criar um vetor de objetos? Empty Re: Como criar um vetor de objetos?

Mensagem por saim Qua 31 Jul 2013, 23:33

Eu faço isso direto. Mas chamo "vetor" de "array". Se fizer isso durante a explicação, já sabe.

Bom, na verdade, o que eu costuma fazer são vetores de INSTÂNCIAS, não de objetos, mas acho que é o que você quer.
Normalmente, quando eu faço isso, eu uso um objeto-controle pra criar as instâncias. No mesmo instante em que cria, ele popula o vetor. Assim:
Código:
var i, nInstancias;
nInstancias := 20; // por exemplo
for (i := 0; i < nInstancias; i += 1){
vetorDeInstancias[i] := instance_create(10, 10 + 10*i, objeto);
}
Isso funciona assim: a função "instance_create", além de criar uma instância, retorna a id da instância. Fazer o código assim armazena um monte de ids no vetor.

Claro que você não precisa fazer isso na hora de criar as instâncias. Pode alimentar o vetor ao longo do jogo. Só precisa dar seu jeito de descobrir as ids.
Pra pegar as variáveis, do jeito que você está pensando está ok. Como o índice tem a id, é como chamar diretamente a instância.

Bom, nesse exemplo que eu dei, todas as instâncias são do mesmo objeto. Dá pra misturar numa boa com outros. Mas tem um inconveniente: se você tentar chamar uma variável, ela pode não existir. Eu ia escrever um exemplo, mas acho que isso é bem óbvio, como pode acontecer. Você confunde os índices e - bum - variável inexistente.
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 : Como criar um vetor de objetos? 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

Como criar um vetor de objetos? Empty Re: Como criar um vetor de objetos?

Mensagem por Mikasuki Qui 01 Ago 2013, 13:59

Sim Brendan, são objetos mesmo Happy

saim, acho que entendei sim! quer dizer que se eu usar a id ao invés do nome que eu atribui o objeto eu posso alimentar o vetor com estas ids? gostei da sua idéia, pode me ajudar depois, mas eu por hora estou usando vários objetos.

Muito obrigado por terem respondido!! Happy

Editando: saim, se este for o caso, por que eu precisaria do id se eu posso fazer algo assim: vetor[x]=objeto ? Não funciona se eu alimentar o vetor direto com a variável que representa o nome do objeto? o game_maker não entende como um objeto e não como uma variável qualquer? Ou eu to viajando muito? =P
Mikasuki
Mikasuki

Data de inscrição : 28/01/2010
Reputação : 0
Número de Mensagens : 33
Prêmios : Como criar um vetor de objetos? 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

Como criar um vetor de objetos? Empty Re: Como criar um vetor de objetos?

Mensagem por Rodrigo Santiago Qui 01 Ago 2013, 18:02

Sim está...
o nome do objeto REPRESENTA O OBJETO, já o id representa a CÓPIA.
Ou seja, todas as cópias são o mesmo objeto, com ids diferentes. Se você usar o nome estará assesando a TODAS as cópias do objeto.
Rodrigo Santiago
Rodrigo Santiago

Games Ranking : Nota B

Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Reputação : 73
Número de Mensagens : 1281
Prêmios : Como criar um vetor de objetos? Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 3 Prata x 1 Bronze x 3

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

Ir para o topo Ir para baixo

Como criar um vetor de objetos? Empty Re: Como criar um vetor de objetos?

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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