【发布时间】:2016-11-01 00:04:22
【问题描述】:
在 Game Maker 中,有一个我正在尝试设计的 AI……这个 AI 会根据物体与它的距离来选择首先拍摄哪个物体。然而,这个人工智能系统不仅计算一个物体的距离,它还计算几个物体的距离。因此:instance_nearest 不起作用,因为它可能只用于计算特定对象的距离。
代码如下:
if object_exists(E_soldier_AI){
if(distance_to_object(E_soldier_AI) < global.Dis){
var t1 = instance_nearest(x,y,E_soldier_AI).x;
var t2 = instance_nearest(x,y,E_soldier_AI).y;
instance_create(t1 ,t2, NB);
}
}
if object_exists(E_soldier_AI2){
if(distance_to_object(E_soldier_AI2) < global.Dis){
var t1 = instance_nearest(x,y,E_soldier_AI2).x;
var t2 = instance_nearest(x,y,E_soldier_AI2).y;
instance_create(t1 ,t2, NB3);
}
}
if object_exists(E_soldier_AI3){
if(distance_to_object(E_soldier_AI3) < global.Dis){
var t1 = instance_nearest(x,y,E_soldier_AI3).x;
var t2 = instance_nearest(x,y,E_soldier_AI3).y;
instance_create(t1 ,t2, NB4);
}
}
if object_exists(ETank_AI){
if(distance_to_object(ETank_AI) < global.Dis){
var t1 = instance_nearest(x,y,ETank_AI).x;
var t2 = instance_nearest(x,y,ETank_AI).y;
instance_create(t1 ,t2, NB2);
}
}
这段代码也不会“删减它”,因为该代码似乎只检查对象 E_soldier_AI 是否存在,以及“if”语句下的命令,但它不考虑之后的其他“if”语句。 .
【问题讨论】:
标签: artificial-intelligence game-maker