distance_to_object(obj_Gegner)<100 Problem =P

  • distance_to_object(obj_Gegner)<100 Problem =P

    Ja hi ,

    folgende Situation :
    Ich habe ein 3 verschiedene Gegner(Böse) gemacht und sie dann alle auf das parent event "obj_Gegner" verwiesen und ich hab 3 verschiedene Gute gemacht und diese auch alle auf ein parent Event namens "obj_Gute" verwiesen.
    Ich habe jetzt in einen Room 3 Böse und 3 Gute gesetzt und folgenden Code für die guten gemacht
    "distance_to_object(obj_Gegner)<100 then (move to Gegner)"Jetzt trifft manchmal ein guter auf einen bösen aber bewegt sich nicht auf ihn zu sondern bei einem ganz bestimmten gegner bewegt er sich zu ihm warum den?


    Spielbeispiel
    GM oldie ich bin :troll:

    Spiel-Referenzen : 8 Spiele Hier 2 Screens der Rest ist verschollen :c
  • weis nich ganz ob das stimmt:
    obj_gegner is ein objekt, keine instanz, also wird automatisch immer das erste objekt angesprochen, wenn es um konstante(im Sinne von "read-only") variablen geht. du musst schon die id der instanzen ansprechen, damit das richtig funktioniert.

    stichwort: schleife und instance_find
    "das war meine letzte flamewar PM an dich ."
  • Ansonsten kannst du die Positionen mit floor(x/32)*32 (selbiges mit y) überprüfen und ausrichten.
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • Also du must da auf jeden fall mit MP grid fuktion arbeiten.
    aber selbst wenn du die blöcke "grids " einstellst laufen sie immer noch flüssig von Block zu Block.
    Um eine bei mir ist es glaube so gemacht.

    Du must nur irgend wo definieren wo er hin laufen soll. bestimmer zu player. das muss vorher in xgoal und y goal eingegeben werden etwa am anfang oder noch vor dem weg script im step event.
    Da gab es mal diese Demo zum GM die hieß "regdemo" oder so. da ist ein eifaches bsp drin.
    1 Path erstellen mit dm Namen "way" der path reich wenn er nur einen Punkt hat.
    Create Event eine Controller_objektes welches allesim spiel regelt

    GML-Quellcode

    1. global.grid = mp_grid_create(0,0,room_width/16,room_height/16,16,16);
    2. mp_grid_add_instances(global.grid,obj_solid,false);

    Create event

    GML-Quellcode

    1. start_x=x
    2. start_y=y
    3. xgoal = x;
    4. ygoal = y;
    5. way = path_duplicate(path_way);
    6. path_set_precision(way,1)
    7. move_speed =1


    Step event

    GML-Quellcode

    1. if distance_to_point(xgoal,ygoal) > 0 and not path_end() then { //wenn das ziel weiter weg ist als 0 dann läuft er los
    2. if mp_grid_path(global.grid,way,x,y,xgoal,ygoal,false) then {// sucht sich den weg durch die eingestellten grids
    3. path_start(way,move_speed,0,true);// startet den weg mit der eingestellten geschwindigkeit "move_speed"
    4. }
    5. }
    6. else
    7. { //wenn erangekommen ist. hier würde ich noch einen timer rein setzt den sonst bleibt er da stehen. Im timer kannst du erneut abfragen wo er hin soll und somit ist xgoal undygoal wieder weiter als 0 weg.
    8. //kann man noch rein schreiben was paasiert wenn er am ziel angekommen ist.
    9. path_speed = 0
    10. }

    hab es zwa nicht getestet aber so ist es bei mir im spiel NewWorld für den Holzfäller zb
    Wenn ander das lesen die werden dir da schon helfen mit den Kästchen
    Meine Signatur hat kein Visum für das GM Forum erhalten.