为不存在的对象创建实例:<somenumber> |我做错了什么?

时间:2018-01-12 19:59:37

标签: game-maker game-maker-language

每次我运行我的小游戏时,它都会引发以下致命错误:

ERROR in
action number 2
of Trigger Event: 
for object obj_y:

Creating instance for non-existing object: 100012

我不知道是什么导致了它。我使用obj_y的唯一时间是在一个文件中。当我评论那部分时,它仍然不停地唠叨它不存在。

我的代码:

var randomxnumber;
var randomynumber;
var randomarraynumber;
var array;
var snelheid;
snelheid = 3.5;

array[0] = obj_a;
array[1] = obj_b;
array[2] = obj_c;
array[3] = obj_d;
array[4] = obj_e;
array[5] = obj_f;
array[6] = obj_g;
array[7] = obj_h;
array[8] = obj_i;
array[9] = obj_j;
array[10] = obj_k;
array[11] = obj_l;
array[12] = obj_m;
array[13] = obj_n;
array[14] = obj_o;
array[15] = obj_p;
array[16] = obj_q;
array[17] = obj_r;
array[18] = obj_s;
array[19] = obj_t;
array[20] = obj_u;
array[21] = obj_v;
array[22] = obj_w;
array[23] = obj_x;
array[24] = obj_y;
array[25] = obj_z;

randomxnumber = random_range(0, 50);
randomynumber = random_range(-10, -50);
for (int = 0; int < 20; int += 1){
    if(randomxnumber >= window_get_width()){
        randomxnumber -= 100;
    } else {
        randomxnumber += 50;
    }
    randomynumber -= 50;
    array[int] = instance_create(randomxnumber, randomynumber, array[random_range(0, 26)]);
    with(array[int]){
        vspeed = snelheid;
    }
}

我的obj_y对象: obj_y object

快速说明,我使用的是GameMaker 8.1 Standard。我是傻了,只是错过了什么?

1 个答案:

答案 0 :(得分:0)

这是非常奇怪的代码,我不明白你想做什么。

虽然有两个错误。

array[random_range(0, 26)]

应该是

array[irandom_range(0, 25)

GM舍入数组的索引,所以如果值大于25(25.1等),你将超出数组范围。

二。

array[int] = instance_create(...)

实例的id将存储到数组中。不是对象的id。但是instance_create需要对象索引。您可以使用object_index变量获取对象的索引:

array[int] = instance_create(randomxnumber, randomynumber, array[irandom_range(0, 25)].object_index);