Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Ontem à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
14 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 14 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

with - testando variaves do mesmo objeto

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

with - testando variaves do mesmo objeto

Mensagem por felipefrosi em Sab 01 Maio 2010, 03:18

Olá,

Tenho instanciado o objeto o_personagem 100 vezes no mapa, vou definir variaves dele por ID:

for (i = 0; i < 100; i++)
{
with (o_personagem.instance_id[i]) variavel = novo valor;
}

até aí blz.

Bom, oq é feito aí é que todas as instancias sao guardadas num vetorzão, o problema é que digamos que eu instancie antes um predio no mapa, veja bem: estou instanciando um object predio e depois 100 o_personagens. O que ocorre é que aqui neste vetor está sendo guardado o prédio na posicao 1, e isso tá comprometendo meu desenvolvimento.

Antes que alguém diaga: "instancia antes todos os personagens entao", já digo, até funciona, mas tô afim de resolver de verdade Very Happy

Alguém sabe oq fazer?

Muito obrigado!

[]´s
avatar
felipefrosi

Data de inscrição : 06/03/2010
Número de Mensagens : 11
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: with - testando variaves do mesmo objeto

Mensagem por Convidad em Sab 01 Maio 2010, 05:26

Você pode usar isso aqui a qualquer hora que só as variáveis do objeto que você quer serão mudadas:

Código:
for (n = 0; n < instance_count; n += 1)
begin
    if instance_id[n].object_index = o_personagem then instance_id[n].variavel := novo_valor;
end;

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: with - testando variaves do mesmo objeto

Mensagem por felipefrosi em Dom 02 Maio 2010, 09:51

Opa! isso já ajuda!
Mas oq eu queria é algo que as instancias de o_personagem na ordem que foram instanciados, do tipo vetor_pers[0] o primeiro, vetor_pers[1] o segundo e assim por diante... o GM nao faz isso então? to pensando em criar esse sisteminha na mão com variaves globais Smile

Obrigado
avatar
felipefrosi

Data de inscrição : 06/03/2010
Número de Mensagens : 11
Insígnias de JAM :

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: with - testando variaves do mesmo objeto

Mensagem por Convidad em Seg 10 Maio 2010, 02:14

É. Nesse caso então não vai funcionar porque o instance_count atende ao depth e não ao id. Então a gente poderia usar justamente o id:


var ultimo_id, quantidade, vetor;
ultimo_id := 0; vetor := 0; quantidade := 0;

for (n = 0; n < instance_count; n += 1)
begin
ultimo_id := max(ultimo_id, instance_id[n]);
end;

for (i = 100001; i <= ultimo_id; i += 1)
begin
if instance_exists(i) then
begin
if i.object_index = o_personagem then
begin
vetor[quantidade] := i;
quantidade += 1;
end;
end;
end;


Desse jeito, a gente criou um array e cada índice dele remete à uma instância do objeto o_personagem, por ordem exata de criação. Você vai poder usar esse vetor pra muitas coisas, inclusive pra trocar as variáveis que queria:

Código:
vetor[0].image_xscale := 2;
vetor[32].sprite_index := 10;
vetor[40].energia := 20;

Convidad
Convidado


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