Brauche Hilfe vom PROFI ! (mp_*Funktionen etc)

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

  • Brauche Hilfe vom PROFI ! (mp_*Funktionen etc)

    Also ich probiere schon seit ca 2 Wochen es hinzubekommen dass wenn mein Ball geblockt wird er ganz präzise den richtigen Weg zum Ziel finden soll, wenn er von Objekten geblockt wird!!!

    ich lade einfach mal ein Beispiel hoch, da sieht man es am besten!!!

    Ich erläuter dazu nicht viel,
    AUSSER!!!!!!! Das die WÄNDE auch mal anders liegen können, also bitte nicht einfach nur von A nach B nach C nach D nach E laufen lassen und dann ins Ziel, der Ball sollte sich selbst den Weg ausrechnen (und das sehr schnell; um schnellstmöglich ins Ziel zu gelangen!)

    Wäre echt der oberhammer wenn mir jemand damit helfen könnte!!! Es ist sehr schwer!!!!



    mpbloct5.rar


    edit1: Den Text mit roter Schrift hinzugefügt
    edit²: Rapidshare-Link entfernt, lieber den GM Dateianhang benutzt!

    Grüße..

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ttothef ()

  • Danke ich schau es mir gerade an, werde demnächst dann alles ganz genau angucken, wie du das gemacht hast etc,

    aber leider funktioniert es nicht wenn ich den runbutton klicke, kommtn error, naja - wär super wenn du es in meinem example eingebaut hättest (zumindestens so, wie es bei mir der Ball geblockt wird)

    - aber wenn es so auch funktioniert, dann werde ich mich damit beschäftigen; Danke erstmal ! *happy binZ* :) :)

    [Zusammengeschoben von CAS]

    So, danke, ich habe es jetzt so;

    mein Ball soll zum Ziel (rechts in der Map) und er soll geblockt werden von steinen die im weg liegen (bestmöglich ausweichen, wie in copyboy's example(welches sehr nice ist))

    Doch ich habs bis jetzt geschafft dass der Ball von A nach B rennt, doch leider nicht den Steinen ausweicht, er rennt einfach drüber, kann es da irgendeinen >leichten< Grund geben? vllt habe ich irgendwas wichtiges vergessen oder so :(


    habe meinen Stein (die auch so im room liegen) mit den codes gefüttert:

    CREATE EVENT

    GML-Quellcode

    1. global.grid = mp_grid_create(0,0,room_width/24,room_height/24,24,24);
    2. // Block zum Grid hinzufügen
    3. mp_grid_add_cell(global.grid,x/24,y/24);
    4. // (Da Block variablel) Pfad erneut suchen
    5. with (monster) {event_user(0);}


    DESTROY EVENT

    GML-Quellcode

    1. // Block aus dem Grid entfernen
    2. mp_grid_clear_cell(global.grid,x/24,y/24);
    3. // (Da Block variablel) Pfad erneut suchen
    4. with (monster) {event_user(0);}


    habe auch ein obj_control gemacht aber nur mit das:

    CREATE EVENT

    GML-Quellcode

    1. global.grid = mp_grid_create(0,0,room_width/24,room_height/24,24,24);

    ich habe mehrere Steine zum werfen, da kommt dann irgendwie alles durcheinander (habe schon 2 mal alles von vorne machen müssen als ich was getestet hatte; deshalbt erstmal nur ein Create Event mit dem Code)


    Hilfe :(
  • Habs rausgenommen; dann kommt der Error:

    ERROR in
    action number 1
    of Create Event
    for object Stein1:

    Error in code at line 2:
    mp_grid_add_cell(global.grid,x/24,y/24);

    at position 26: Unknown variable grid

    ps: ich habe alle 32x32x auf 24x24x und 16er auf 12 gemacht, nur btw.


    Also hast du für mich keine andere Lösung? Würde das denn irgendwie funktionieren, was denkst du ?


    edit; bei deinem example kommt der selbe Error !(; (deshalb habe ich das auch dort ins Create_E gemacht)
  • Dann weiß er wieder nicht was das grid ist,



    es klappt ja wenn ich beides im Create Event habe;

    GML-Quellcode

    1. global.grid = mp_grid_create(0,0,room_width/24,room_height/24,24,24);
    2. // Block zum Grid hinzufügen
    3. mp_grid_add_cell(global.grid,x/24,y/24);
    4. // (Da Block variablel) Pfad erneut suchen
    5. with (monster) {event_user(0);}



    großes Problem ist nur, wenn ich die steine in dem Room schon per objecte reinsetze, dann funktionieren diese nicht, - dann läuft der Ball/(monster) einfach über die Steine....


    :(?
  • Habe ja ein example im ersten Post hochgeladen, wenn man dort alles dazu bringen kann das es funktioniert dann kann ich es auch bei mir umstellen,


    habe dir (tobi) ne PN geschickt, ich werde morgen nicht online sein, frühstens Sonntag wieder, oder Montag.


    Grüße... und danke für die Hilfe bis jetzt@all
  • ttothef schrieb:

    GML-Quellcode

    1. global.grid = mp_grid_create(0,0,room_width/24,room_height/24,24,24);
    2. // Block zum Grid hinzufügen
    3. mp_grid_add_cell(global.grid,x/24,y/24);
    4. // (Da Block variablel) Pfad erneut suchen
    5. with (monster) {event_user(0);}
    So kann das auch nicht funktionieren, du erstellst mit jedem Block ein neues Grid. :P
    Versuch Nr. 2:

    GML-Quellcode

    1. if (!variable_global_exists("grid")) {
    2. // Wenn global.grid noch nicht gesetzt wurde mach das jetzt
    3. global.grid = mp_grid_create(0,0,room_width/24,room_height/24,24,24);
    4. }
    5. // Block zum Grid hinzufügen
    6. mp_grid_add_cell(global.grid,x/24,y/24);
    7. // (Da Block variablel) Pfad erneut suchen
    8. with (monster) {event_user(0);}
  • Danke für den Tipp, funktioniert schon ein wenig besser, zwar noch nicht dass die Steine den wegblockieren aber irgendwann wird mir schon was einfallen *heul*

    ...


    ....Grüße...


    EDIT (um doubleposting zu vermeiden):



    Nen GameMaker 7 Pro Edition Profi, der helfen möchte gibt es hier wohl nicht :\ :?:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ttothef ()

  • Wie wärs wenn du den Script in ein einziges Controlobjekt schreibst, anstatt in jeden Block?
    Könnte mir gut vorstellen, dass es daran liegt.
    Ich meine so schwer sind die mp_grid-Funktionen auch nicht, dass man da so viel falsch machen kann. Also einfach mal ein Controllerobjekt, das das Grid erstellt, alle blöcke hinzufügt:

    GML-Quellcode

    1. with (obj_block) grid_add_instance(global.grid,obj_block)

    Weiß nicht, ob man da das with (obj_block) noch braucht, hab grad keinen gm zur hand.
    dann ersetzt du einen bestehenden path mit dem aus dem grid berechneten.

    © 2008 by Teamgrill Productions
  • Habe ins obj_control

    Create Event dies hier:

    GML-Quellcode

    1. global.grid = mp_grid_create(0,0,room_width/24,room_height/24,24,24);


    dann im Step Event:

    GML-Quellcode

    1. with Kristall_map mp_grid_add_instances(global.grid,Kristall_map)





    und im obj_block

    Create Event:

    GML-Quellcode

    1. //der Rest den Copyboy mir gezeigt hatte, hab ich erstmal auskommentiert//
    2. // Block zum Grid hinzufügen
    3. mp_grid_add_cell(global.grid,x/24,y/24);
    4. // (Da Block variablel) Pfad erneut suchen
    5. with (monster) {event_user(0);}


    Destroy Event:

    GML-Quellcode

    1. // Block aus dem Grid entfernen
    2. mp_grid_clear_cell(global.grid,x/24,y/24);
    3. // (Da Block variablel) Pfad erneut suchen
    4. with (monster) {event_user(0);}



    Kommt erstmal nen Error;

    FATAL ERROR in
    action number 1
    of Step Event
    for object obj_control:

    COMPILATION ERROR in code action
    Error in code at line 1:
    with Kristall_map mp_grid_add_instances(global.grid,Kristall_map)

    at position 65: Wrong number of arguments to function or script.


    Jedenfalls, rennt das Monster/Der Ball einfach über das block_obj rüber, anstatt diese auszuweichen (labyrinthmäßig) und dann ins Ziel zu gelangen. :(
  • Ich hab zwar geschafft ein funktionierendes Example zu machen (funktioniert genau wie copyboy's).
    Aber wenn ich das in deins übernehmen will, geht das nicht.
    Tut mir Leid.

    trotzdem das example (Anhang)

    -Tobi
    Dateien
    • path.zip

      (20,62 kB, 77 mal heruntergeladen, zuletzt: )
  • Danke es funktioniert jezt sehr gut, nur mit einem Problem:


    Wenn ich das monster/den Ball in den Room setze, dann funkioniert alles vonwegen Wegblocken und so.


    Aber wenn ich ihn im Game createn lasse (zB instance_create(x,y,Ball)) so dass er kreiert wird, dann läuft er einfach zum Ziel und lässt sich nicht stören von den Steinen.


    meine Frage; Wie könnte ich es machen dass es so klappt, dass wenn die Instanz im game created wird, dann so gilt als würde sie von anfang an im Room stehen ?

    edit; ich könnte mir vorstellen es hat was mit dem User Defined Event zu tun... :?:

    Grüße, ttothef!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von ttothef ()

  • Ich weiß ja nicht was du hast, aber in meinem example funktioniert das (habs nochmal verändert, damit man auch merkt, dass das erst IM SPIEL erstellt wird)

    Hast du auch die depth eingestellt?
    Achte mal darauf, wie die depth bei meinem eingestellt ist.


    -Tobi
    Dateien
    • path.zip

      (21,63 kB, 91 mal heruntergeladen, zuletzt: )
  • Ja bei mir hatte es nicht geklappt, wenn ich instance_Create obj gemacht hatte, aber habe jetzt bei deinem example nochmal geguckt, und hat mir schon ein bisschen weitergeholfen, doch leider noch nicht ganz !


    Ich danke Dir; & freu mich sehr über deine Interesse zur Hilfe (A) :!: :) :)
  • Benutzer online 1

    1 Besucher