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

felipefrosi

Número de Mensagens : 11
Data de inscrição : 06/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

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

felipefrosi

Número de Mensagens : 11
Data de inscrição : 06/03/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

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

Re: with - testando variaves do mesmo objeto

Mensagem por Conteúdo patrocinado Hoje à(s) 12:30


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