Identificar instancias

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

Resolvido Identificar instancias

Mensagem por chicoweb em Qui 20 Dez 2012, 19:43


Estou com um problema eu crio as seguintes instancias:

Código:
cont = 0;
while cont <= 30 {
    // Cria um cao no lado esquerdo da tela 
    instance_create(random(100),random(480),obj_cao);
    obj_cao.hspeed = 4;
    // Cria um cao no lado direito da tela 
    instance_create(random(100)+540,random(480),obj_cao)
    obj_cao.hspeed = -4;
    cont += 1;
}

Achei que pelas speed que coloquei faria cada cao de cada lado andar pro meio da tela,
mas acontece que todos começam a andar pratras, obedecendo somente o -4

Como que eu os identifoco para terem speeds diferentes???

chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Identificar instancias

Mensagem por Lukbebalduke em Qui 20 Dez 2012, 19:46

Código:
cont = 0;
while cont <= 30 {
    // Cria um cao no lado esquerdo da tela 
    cao1=instance_create(random(100),random(480),obj_cao);
    cao1.hspeed = 4;
    // Cria um cao no lado direito da tela 
    cao2=instance_create(random(100)+540,random(480),obj_cao)
    cao2.hspeed = -4;
    cont += 1;
}

Lukbebalduke

Ranking : Nota B
Número de Mensagens : 764
Data de inscrição : 06/07/2011
Notas recebidas : B - B - A - B
Reputação : 30
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

Voltar ao Topo Ir em baixo

Resolvido Re: Identificar instancias

Mensagem por Jiraya em Qui 20 Dez 2012, 19:50

só complementando o código do pinpi
Código:

cont = 0;
while cont <= 30 {
    // Cria um cao no lado esquerdo da tela 
    (instance_create(random(100),random(480),obj_cao)).hspeed=4;
    // Cria um cao no lado direito da tela 
    (instance_create(random(100)+540,random(480),obj_cao)).hspeed=-4;
    cont += 1;
}

Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Resolvido Re: Identificar instancias

Mensagem por Need 90 em Qui 20 Dez 2012, 19:51

você está definindo a mesma variável duas vezes em sequencia, e como a -4 é a última, é a que o objeto vai obedecer.
tente assim :
Código:
cont = 0;
while cont <= 30 {
    // Cria um cao no lado esquerdo da tela 
    i = instance_create(random(100),random(480),obj_cao);
    i.hspeed = 4;
    // Cria um cao no lado direito da tela 
    o = instance_create(random(100)+540,random(480),obj_cao)
    o.hspeed = -4;
    cont += 1;
}

Need 90

Ranking : Nota B
Número de Mensagens : 787
Data de inscrição : 16/01/2012
Notas recebidas : D+A+B
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://need90games.blogspot.com.br

Voltar ao Topo Ir em baixo

Resolvido Re: Identificar instancias

Mensagem por chicoweb em Qui 20 Dez 2012, 20:19

Beleza funcionou. Obrigado a todos!!

Funcionou e com várias alternativas, mas gostei da que atribui o objeto a outro novo, "objnovo = instance_create(....)".

Mas isso me levou a mais uma duvida que vai rolar no futuro:

Percebi que tb podemos usar vetores tipo

Código:
cont = 0;
while cont <= 300 {
    cao[i] = instance_create(random(100)+540,random(480),obj_cao)
    cont += 1;
}

Eu posso definir desses tipo até o cao[300].
E tb sem seta-lo para ninguem do tipo:

Código:
cont = 0;
while cont <= 30 {
    instance_create(random(100)+540,random(480),obj_cao)
    cont += 1;
}

A pergunta é: Faz alguma diferença em termos de desempenho e consumo de memória ou algo assim?




chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Identificar instancias

Mensagem por PedroX em Qui 20 Dez 2012, 20:48

Nesse código:
Código:
cont = 0;
while cont <= 300 {
    cao[cont] = instance_create(random(100)+540,random(480),obj_cao)
    cont += 1;
}
Ele vai criar uma matriz de 300 posições. Contando grossamente, são 2400 (300x8) bytes só de matriz. Isso equivale a pouco mais de 2 kB. É uma perda desnecessária de memória.

Já esse códig:
Código:
cont = 0;
while cont <= 30 {
    instance_create(random(100)+540,random(480),obj_cao)
    cont += 1;
}

Poderia ser substituido por:
Código:
repeat(31) instance_create(random(100)+540,random(480),obj_cao);

Se você usar var cont; no início, logo a memória da variável será recuperada, mas não é bom ficar usando variáveis para qualquer coisa. E fica até mais legível e rápido de executar.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: Identificar instancias

Mensagem por chicoweb em Qui 20 Dez 2012, 21:10

OK. Muito mais limpo assim neh!
Valeuuuu!

chicoweb

Ranking : Nota C
Número de Mensagens : 666
Idade : 40
Data de inscrição : 15/05/2012
Notas recebidas : B+C
Reputação : 49
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Identificar instancias

Mensagem por Conteúdo patrocinado Hoje à(s) 01:06


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