Auswahl rechteck

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

  • Auswahl rechteck

    Hallo,

    Um die Sache auf den Punkt zu bringen:Wie kann ich eine Art Auswahl Rechteck drawn und alle bei allen sich darin befindlichen Objekten vom Typ z.B. object0 eine Variable "chosen" auf eins setzen?
    I am who I am. And who I wanna be. Avril Lavigne
  • aus der Help:

    GML-Quellcode

    1. collision_rectangle(x1,y1,x2,y2,obj,prec,notme)
    This function tests whether there is a collision between the (filled) rectangle with the indicated opposite corners and entities of object obj. For example, you can use this to test whether an area is free of obstacles.



    und das hier für die benötigten Argumente:
    The argument obj can be an object, the keyword all, or the id of an instance. The argument prec indicates whether the check should be precise or only based on the bounding box of the instance. Precise checking is only done when the sprite for the instance has the precise collision checking set. The argument notme can be set to true to indicate that the calling instance should not be checked. All these functions return either the id of one of the instances that collide, or they return a negative value when there is no collision.
  • x1 und y1 beschreiben den oberen linken Punkt des Rechtecks, x2 und y2 den unteren rechten Punkt.
    obj ist die id, nach der im Kollisionsbereich gesucht werden soll.
    prec setzt du entweder auf true (wenn du willst, dass die Kollision präzise an der Kollisionsmaske des Sprites anliegt) oder false (wenn an der Bounding Box geprüft werden soll - dem Rechteck, das das Sprite umgibt; lässt sich im Sprite-Editor des GM einsehen).
    notme setzt du auch entweder auf true oder false, je nachdem, ob das ausführende Objekt in der Prüfung inbegriffen sein soll oder nicht (normalerweise will man das nicht, daher ist dieses Argument meistens false.).

    GML-Quellcode

    1. collision_rectangle(room_width/2,room_height/2,room_width,room_height,obj_gegner,true,false);

    Dieser Beispielcode würde z.B. überprüfen, ob im unteren rechten Viertel des Rooms Instanzen von obj_gegner vorhanden sind und sofort true zurückgeben, wenn sie nur eine Tentakelspitze in den Prüfbereich setzen. Soweit verständlich? ^^
  • Verzeihung, mein Fehler - collision_rectangle gibt weder true noch false zurück, sondern entweder die ID des Objektes im Prüfbereich oder einen negativen Wert, wenn das Objekt nicht in diesem Bereich liegt. :pinch:

    Nunja, ich hab dir jedenfalls mal ein kleines Example zur Veranschaulichung gebastelt. Der Prüfbereich ist hierbei weiß markiert und der Text im schwarzen Feld gibt an, ob der Gegner im Prüfbereich ist oder nicht. Schau dir den Code im Step-Event von obj_checker an, da findest du die Funktion in korrekter Anwendung. ;)
    Dateien
  • Benutzer online 1

    1 Besucher