variable von einem collisionsobjekt

  • GM 8

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

  • variable von einem collisionsobjekt

    heyho,

    ich habe zwei objekte ->> ob_1 ->> ob_2
    ob_1 stößt gegen ob_2

    nun möchte ich in ob_1 überprüfen ob eine variable von ob_2 einen bestimmten wert hat.
    wenn das der fall ist soll ob_1 das machen... wenn der wert der variable nicht diesen bestimmten wert hat soll ob_1 was anderes machen.

    gibts es dafür eine möglichkeit dafür, also wie ich eine variable aus einem objekt auslese mit dem ich kollidiere?
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • Sowas löst man am besten mit einer globalen Variable..
    Wenn du in einem Objekt eine normale Variable hast ist diese auch nur für dieses Objekt Intern.
    Benutzt du eine globale Variable wird dieser für jedes Objekt zugänglich.
    Heißt vor deiner Variable muss nur folgendes Stehen:

    global.variablen_name


    ..und schon kannst du mit jedem Objekt an dieser Variable arbeiten ;)

    Dann machst du nur noch ins Kollisions-Event ein if-Statement und fertig.
    Also einen Code:

    GML-Quellcode

    1. if global.deine_variable=*zahl*
    2. {
    3. // passiert
    4. }
    5. else
    6. {
    7. //oder passiert
    8. }



    // Lucke //
    @7rust-dev
  • danke für die schnelle antwort aber das is leider gar nicht das was ich suche^^

    ich hole mal etwas weiter aus:
    also was soll eigentlich passieren: ich habe eine feuerstelle und erzeuge mehrere enheiten, die sich in einem kreis da drumrum setzten sollen.
    die genaue position, wo sie sich hinsetzten, erzeuge ich über einer zufallsvariable und den x,y wert des lagerfeuers
    und zwar so:
    Spoiler anzeigen

    GML-Quellcode

    1. if count1 = 0
    2. {
    3. count1 = 1
    4. i_random = degtorad(random(360))
    5. }
    6. y_laufen = (ob_ge_lagerfeuer.y + (sin(i_random)*ob_ge_lagerfeuer.range))
    7. x_laufen = (ob_ge_lagerfeuer.x + (cos(i_random)*ob_ge_lagerfeuer.range))


    das funktioniert auch ganz gut, dabei benutze ich noch die variable 'laufen'(ich weiß meine variablennamen sind net sehr einfallsreich^^) ist der wert von laufen =0 dann läuft die entität.
    beim feuer angekommen geht der wert laufen auf 1, das heist die entität setzt sich hin)->> bis dahin funkt auch alles

    ich will jetzt überprüfen ob an dem punkt an dem wo meine entität gelandet is schon jemand sitzt^^
    und da hab ich mir gedacht, wenn die beiden an einem punkt stehen kollideren sie miteinander, dabei isses aber wichtig zu wissen ob das collisonsobjekt sitzt oder läuft.
    (wir erinnern uns laufen = 0 =>laufen; laufen = 1 => sitzen)


    mit globalen variablen funktioniert das an der stelle leider net das die laufen variable an das objekt gebunden sein muss.
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • Ich weiß nicht, wie deine Kollisionsabfrage funktioniert, aber in der Regel solltest du mit einem with Statement, dem ". "-Operator oder dem Spezialobjekt other direkt auf die Instanz zugreifen können, mit der die Kollision stattfindet.
    Das sieht dann etwa so aus:

    GML-Quellcode

    1. if collision_rectangle(0,16,48,56,obj_makakumba,true,true).swooosh="blöder soundeffekt"{
    2. // Hier toller Code. Beachte oben den "."-Operator hinter der Kollisionsfunktion.
    3. // Denn selbige gibt immer die ID des Objekts zurück, mit dem kollidiert wird.
    4. // (Oder, wenn es mehrere Objekte sind, die niedrigste zutreffende ID.)
    5. }
  • ok danke für die antworten das
    collision_rectangle klinkt eigentlich ganz gut
    nur noch eine frage bevor ich stundenlang rumprobiere
    ich zieh doch mit x1 bis y2 ein rechteck auf mein sprite is recht glein.
    ich will das das objekt was die kollisionsabfrage macht genau in der mitte im rechteck is.
    mach ich das dann so?:

    collision_rectangle(x-6,y-6,x+6,y+6,ob_sdfy,true,true)



    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey

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

  • Benutzer online 1

    1 Besucher