1

我只是想从我的脚本中更改一个简单对象的变量。代码运行但没有改变变量。

编辑这个变量应该会降低敌人的生命值,但不会。如果我从对象本身中编辑此变量,则运行状况栏会发生变化。

enemies();
friends();
randomize();

//get enemy from array and make an instance
active_enemy = enemy_list[irandom_range(0, 1)];

var inst1 = instance_create_depth(200, 75, 1, active_enemy); 

//get friend from arrayand make an instance
active_friend = friend_list[irandom_range(0, 1)];

var inst2 = instance_create_depth(96, 175, 1, active_friend); 

//change variable
inst1.e_health_active = 1;

该脚本放置在战斗室创建代码中,并且 e_health_active 作为其统计数据的一部分存在于每个敌人的 obj 代码中。

谢谢!

4

1 回答 1

1

如果您通过在放置在起始房间global.e_health_active = 1;的持久Game对象中执行此操作使敌人的健康变量成为全局变量,global.e_health_active则现在可以在程序中的任何位置访问。它不再必须在同一个对象中。

做这样的事情:

// Persistent game object - where you would like to store all your global variables
// Create event 
   global.e_health_active = 10; // this can be any number you want it to be. 

然后将以下内容放入战斗室创建代码中

// Creation code of battle room 
enemies();
friends();
randomize();

//get enemy from array and make an instance
active_enemy = enemy_list[irandom_range(0, 1)];

var inst1 = instance_create_depth(200, 75, 1, active_enemy); 

//get friend from arrayand make an instance
active_friend = friend_list[irandom_range(0, 1)];

var inst2 = instance_create_depth(96, 175, 1, active_friend); 

//change variable
inst1.global.e_health_active = 1;
于 2018-12-05T12:26:06.997 回答