Bereiche

  • GM 7

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

  • Hallo, ich wollte mal fragen ob das geht, dass man bestimmte Bereiche macht.

    Also, dass ich sag:

    Falls das Objekt in den Bereich kommt, dann Aktion.
    Und kann man solche Bereiche z.b. mit x1,y1,x2,y2 bestimmen?
    Gruß Gamer
  • RE: Bereiche

    The Gamer schrieb:

    Hallo, ich wollte mal fragen ob das geht, dass man bestimmte Bereiche macht.

    Also, dass ich sag:

    Falls das Objekt in den Bereich kommt, dann Aktion.
    Und kann man solche Bereiche z.b. mit x1,y1,x2,y2 bestimmen?


    Die erste Möglichkeit, die mir einfällt, wäre "Collision Rectangle" das gibt die ID zurück und dementsprechend sollte es damit kein Problem sein.

    collision_rectangle(x1,y1,x2,y2,obj,prec,notme); müsste es sein... übrigens, die Hilfe hilft ;)


    EDITH: wenn es keine Kollision gibt, gibt es 0 zurück (oder -1?) also kannst du da auch mit if(collision_rectange) arbeiten.
    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
  • ne 2. möglichkeit wäre das:
    du erstellst die variablen x1,x2,y1,y2
    dann schreibste im step event:

    GML-Quellcode

    1. if x>x1 && y>y1 && x<x2 && y<y2
    2. {
    3. //aktion
    4. x1=get_integer('x1',"")
    5. y1=get_integer('y1',"")
    6. x2=get_integer('x2',"")
    7. y2=get_integer('y2',"")
    8. }
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • Ok danke. Da ich aber mehrere Bereiche brauche, ist die erste Möglichkeit wohl die bessere, oder?

    Was bedeutet prec und notme, ich blick nicht richtig, was dazu in der Hilfe steht.
    Gruß Gamer

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

  • Das Argument prec gibt an, die Prüfung präzise sein soll oder nur auf der "bounding-box" der Instanz basiert. Präzise Prüfung wird nur ausgeführt, wenn das sprite der Instanz es aktiviert hat.
    Das Argument notme kann auf wahr (true) gesetzt werden, um anzugeben, dass die aufrufende Instanz nicht geprüft wird.
    Was gibt es da nicht zu verstehen?
    Wenn prec gesetzt (also 1 oder true), nicht nicht nur die Bounding-Box der Sprites geprüft, sondern das Sprite selbst (blöd zu formulieren). Bei notme wird die Instanz, die die Kollisionsprüfung ausführt, nicht geprüft. Das brauchst du z.B. wenn du mehrere Instanzen desselben Typs hast, ohne dass das die aufrufende Instanz getestet wird.

    Ich wäre übrigens für die Methode, die sebastian733 vorgeschlagen hat.
  • Ok, aber was ist eine Bounding-Box, das versteh ich nicht.
    Geh mal in die Sprite Properties, in der Vorschau siehst du dann ein Rechteck, das ist die Bounding-Box des Sprites.

    Aber ist es bei mehreren Bereichen nicht sinnvoller, die erste Variante zu nehmen?
    Meiner Meinung nach nicht. Schau mal:

    GML-Quellcode

    1. if (x>100 && y>100 && x<200 && y<200) {
    2. // In Bereich 1
    3. }
    4. if (x>250 && y>400 && x<300 && y<550) {
    5. // In Bereich 2
    6. }
    collision_rectangle ist nicht gerade einfacher oder übersichtlicher.
  • wenn es nur in bestimmten bereihen sein soll , dann kosten doch so vll 10 objekte garnix !

    oder kosten die viel mehr? kennt jmd zahlen?

    oder wegen mir dauerts 10 mal so lang aber 10mal ne geringe zeit ist immer noch gering, ich kann mir nicht vorstellen dass das so viel speicher kostet,

    weiß jmd bescheid?
  • ne weiß nich bescheid, aber das kommt darauf an wie groß dein Spiel ist denke ich.

    Wenn du nur ein kleines Minigame mit wenigen Räumen und Objekten machst, dann geht das so wohl auch, aber die andere variante geht doch eig. viel einfacher.
    Gruß Gamer
  • Es gibt noch mehr gründe warum die funktion so wie sie genannt wurde einfacher ist als objecte zu erstellen:
    - du brauchst für jedes ein sprite mit den exakten maßen. spätere korrektur ist schwer.
    - die tatsache das man für jeden bereichein extra sprite braucht welches auch noch mal ressourcen verbraucht und speicher sollte einen schon umstimmen.
    -und zu guter letzt ist es einfacher ein skript mit argumenten aufzurufen als ein neues objekt+ sprite zu erstellen.
    ich denke es dürfte jetzt allen klar sien.
    Wer es trozdem anders machen will soll es so amchen wie er es für richtig hält.
    mfg gamer_08
  • Benutzer online 4

    4 Besucher