GML -> проверить переменную конфликтующего экземпляра, затем выполнить действие

Я пытался сделать несколько сценариев GML, но в какой-то момент полностью застрял. Я хочу, чтобы враги атаковали моего главного героя, но не пересекались. Итак, я бы сказал.

//enemy is moving left-to-right...
if place_meeting(x+1, y, enemy){ //if there's a collision with another enemy
   if (other enemy).is_attacking{ // ???
   // checks if the colliding enemy is attacking, if true, it should attack as well...
   is_attacking=true;
   }else{
   //walks
}

Это изображение описывает то, что я пытаюсь получить (обратите внимание, что враги знают, что они должны атаковать, даже если они не находятся в прямом контакте с главным героем, просто потому, что другой враг атакует)

Что я пытаюсь получить...


person Fran Cano    schedule 16.01.2015    source источник


Ответы (1)


Наконец-то я смог это сделать благодаря место экземпляра.

Я опубликую код, если кому-то понадобится что-то подобное

if place_meeting(x+5, y, malo){ //malo means enemy on spanish, i use to write multilingual code, lol :P
          var inst;
          inst=instance_place(x+15,y,malo); //x varies on sprite size. it basically returns the unique id of the object that's 15 pixels on the right of self (malo)
    with (inst){
        if (is_attacking){
        other.is_attacking=true; //if collided enemy is attacking, then this(other) enemy should attack too. search more about the width statement if you don't catch this part
        }else{
        other.is_attacking=false;
        hspeed=1;
        }
    }
}else if place_meeting(x+3, y, character){
is_attacking=true;
}else{
is_attacking=false;
hspeed=1;
}

и результат результат

person Fran Cano    schedule 17.01.2015
comment
Если этот ответ удовлетворительно решает вашу проблему, вы должны принять его, нажав на галочку рядом с ним. То же самое относится и к любому другому вопросу, который вы можете задать в будущем. Если вам нужна дополнительная информация, вы можете посмотреть этот метапост: Как работает принятие ответа?. - person The Guy with The Hat; 21.01.2015