position_meeting bei mehreren gleichen objekten in einem raum

  • position_meeting bei mehreren gleichen objekten in einem raum

    Moin Moin

    ich habe 3 Hügel und wenn meine minigolfkugel halt die position meeted^^ dann soll sie sich halt so und so verhalten und eine variable soll gesetzt werden, die anzeigt, dass sich die kugel auf dem berg befindet........

    sobald die kugel die position nicht mehr meeted soll die variable = 0 gesetzt werden....

    jetzt habe ich das Problem, dass ich ja mit "self" nur ein brg objekt abfrage und damit die variable zwar von einem obj_berg = 1 von den beiden anderen aber = 0 gesetzt wird, da da ja keine kollision stattfindet......

    wenn ich jetzt 3 berge habe, kann ich den einen mit self ansprechen also der wo die kugel wirklich kollidiert.... obj_berg spricht einen anderen berg an aber leider nur einen der berge.....

    wie kann ich abfragen ob der ball ein objekt der vielen berührt die von gleicher art sind?


    ich hoffe das is einigermaßen verständlich....
    Philosophie bedeutet, in einem stockdunklem raum nach einer pechschwarzen katze zu suchen, die gar nicht existiert ;) :D
    ------------------------------------
    Mein Projekt: >>>>>>>>>>>>>>>>>>>> DER EINSAME SCHLORK <<<<<<<<<<<<<<<<<<
  • Du willst im Kollisionsfall die Variable für alle Berge löschen (auf 'false') und dann für den einen setzen ('true') ... richtig?
    Also wäre der code für den Berg

    Quellcode

    1. obj_berg.kontakt = 0
    2. kontakt = 1

    oder für den Ball

    Quellcode

    1. obj_berg.kontakt = 0
    2. other.kontakt = 1

    oder wie?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Melancor ()

  • ich glaub ich habs falsch erklärt...

    ich hab ein objekt was nur kommen soll wenn die geschwindigkeit von obj_ball = 0 ist......
    wenn die kugel natürlich jetzt einen berg hochrollt und es nicht bis oben schafft, dann wird die geschwindigkeit ja auch 0 aber nur um dann von selbst wieder höher zu werden bzw der ball rollt zurück...........

    wenn der ball also auf einem berg ist soll das objekt nicht kommen also habe ich jetzt die variable "global.am_berg" gesetzt.....


    steht im step event vom berg

    GML-Quellcode

    1. if(position_meeting(obj_ball.x,obj_ball.y,self)
    2. {
    3. global.am_berg = 1;
    4. .
    5. .
    6. .
    7. .
    8. }
    9. else
    10. {
    11. global.am_berg = 0;
    12. }
    Alles anzeigen


    soooooo das funktioniert auch wunderbar ES SEI DENN ich habe zwei von diesen Bergen..... der ball kann ja immer nur auf einem berg sein und der andere Berg setzt dann die Variable wieder = 0..................

    ich habe jetzt gedacht statt dem "self" setze ich einfach "obj_berg" ein aber unter obj_berg scheint der nur ein obj_berg zu erkennen nicht alle (in meinem fall 3 berge) wie kann ich also sagen dass ich wenn ich irgend einen der berge berühre die variable = 1 gesetzt wird? also einfach das ich jede objekt irgendwie direkt ansprechen kann.......

    ich hoffe das ist jetzt besser verständlich :(
    Philosophie bedeutet, in einem stockdunklem raum nach einer pechschwarzen katze zu suchen, die gar nicht existiert ;) :D
    ------------------------------------
    Mein Projekt: >>>>>>>>>>>>>>>>>>>> DER EINSAME SCHLORK <<<<<<<<<<<<<<<<<<
  • Benütze einfach (Wenn der Hügel rund ist) im step vom Hügel:

    GML-Quellcode

    1. if collision_circle(x,y,50,Ball,true,false)
    2. {
    3. //und hier halt dein code
    4. }

    keine Ahnung ob du das willst aber ich hab es getestet mit "show_message" und es hat bei jedem object mit diesem code die nachricht angezeigt

    © 2008 by Teamgrill Productions
  • ne das is auch nich das problem.................

    ich probiers noch mal ich geb ja zu das es etwas doof zu erklären ist.....


    ich will, dass eine variable = 1 gesetzt wird, wenn der ball mit irgend einem der berge kollidiert und erst 0 wird, wenn der ball mit KEINEM der berge mehr kollidiert....

    das problem ist also, dass ich auf einem berg bin, der setzt die variable = 1 aber die anderen beiden berge merken ja das ich nicht auf ihnen bin und setzten die variable wieder zurück............. ich teste das jetzt aber mal indem ich die variable in dem step event des balles deklarieren lasse .....






    (nebenbei) ich hatte das problem ja auch vorher als ich abgefragt habe im ball step event ob ball.x < ist als berg.x dabei ist dann dsa problem. das scheinbar nur ein objekt als berg genommen wird und man die anderen beiden nicht direkt ansprechen kann nur deshalb hab ichs ins step event des berges gemacht......


    also ich teste noch mal dann meld ich mich wieder :(

    EDIT : Es geht wenn ich ins step event des balles schreiben ......
    Philosophie bedeutet, in einem stockdunklem raum nach einer pechschwarzen katze zu suchen, die gar nicht existiert ;) :D
    ------------------------------------
    Mein Projekt: >>>>>>>>>>>>>>>>>>>> DER EINSAME SCHLORK <<<<<<<<<<<<<<<<<<

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

  • Jetzt weiß ich es: im step vom ball:

    GML-Quellcode

    1. if !collision_circle(x,y,50,mountain,true,false)
    2. {
    3. variable = 0 ;
    4. }
    5. else
    6. {
    7. variable = 1 ;
    8. }


    Ich hab es probiert und es hat funktioniert

    © 2008 by Teamgrill Productions

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