Página 1 de 1

instance_cretae com array.

Enviado: Sex Dez 23, 2022 2:47 pm
por Jovane
Eu fiz um codigo no script que cria objetos de acordo com um array, mas no jogo quando ela vai criar, ele criar um objeto totalmente diferente do que eu pedi.Alguém sabe como resolver?

CREATE DO INIMIGO:
enemys = [obj_slime, obj_slime];
COLISÃO DO INIMIGO COM O PLAYER:
adm_battle.enemys = enemys;

script:
for(i = 0; i < enemys_quant; i++){
instance_create_layer(576 + xpos*(i+1), 256, enemys);
}

Re: instance_cretae com array.

Enviado: Sex Dez 23, 2022 11:51 pm
por Chuaschinai
Como a variável enemys é um array, para obter os valores deste array é necessario passar o index entre colchetes, para assim obter o valor desejado.

Exemplo:
var animais = [obj_cobra, obj_porco, obj_vaca];
animais[0] retorna o objeto obj_cobra
animais[2] retorna o objeto obj_vaca

Basta adicionar enemys[ i ] ao invés de apenas enemys passando assim o valor correspondente a posição do objeto dentro do array, dessa maneira
instance_create_layer(576 + xpos*(i+1), 256, enemys[ i ]);

Mas se você precisar criar o mesmo inimigo diversas vezes, você não precisa do array, pode passar o objeto desejado no lugar de enemys.