distance_to_object nur auf x bezogen

  • GM 6

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • distance_to_object nur auf x bezogen

    Hallo,
    ich baue grade einen KI für das game. Er verfolgt den Player wenn er nah genug ist mittelst distance_to_object(...)<130. so dann if distanc...<6 stehen bleiben. nur wenn man jetzt als player springt ist es wieder mehr als 6. (ich muss die 6 aber beibehalten). wie kann ich das jetzt lösen?

    Ich müsste das so lösen: x<als 6 stehen bleiben und bei y ein bereich ist wo er nicht reagiert. ich hoffe man versteht das
  • Benutz doch einfach eine weitere Variable, die du auf "stehenbleiben" schaltest, sobald die KI nah genug dran ist. Diese beziehst du dann schlicht in deine Abfragen mit ein:

    GML-Quellcode

    1. if(distance_to_object(obj_bla) < 130 && variable_stehenbleiben == false) {// deine aktion;}
    2. if(distance_to_object(obj_bla) < 6) {variable_stehenbleiben = true;}



    Edit: Ich glaub, ich hab das falsch verstanden. Wenn es nur um den X-Wert geht, dann benutze nicht "distance_to_object", sondern lass die KI ihre X-Koordinate mit der des Spielers vergleichen.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Dann mach das doch auch so wie du beschrieben hast:

    GML-Quellcode

    1. if(abs(player.x-object.x) < 6) { ... }


    die x werte von beiden objekten werden subtrahiert, dann kommt da entweder ein positivre oder negativer wert heraus, die durch das abs() (steht für absolut) positiv gemacht wird und somit ein vergleich angestellt werden kann