Player Kollision in einem anderen objekt Problem

  • GM 8

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

  • Player Kollision in einem anderen objekt Problem

    Hey Leute!
    Ich will in einem anderen objekt,eine kollision machen,wo der Player mit einem item zusammen stößst,dannach soll er ein punkt beim z.b score kriegen.
    Ich hätte schon einen Code:

    GML-Quellcode

    1. //Objekt Score
    2. //Create Event
    3. score = 0;
    4. //Step Event
    5. if obj_player place_meeting(obj_item) score += 1

    Nun ist es schon im code rot markiert,wie mach ich das richtig?
  • Öhm... wenn du im Create-Event des Items aber den Score auf 0 setzt und diese Items während des Spielverlaufs erstellt werden, dann bleibt der auch 0. Das bedeutet, der Punktestand des Spielers fällt immer wieder auf 0 zurück, wenn ein neues Item erstellt wird. Lass das Create-Event also lieber weg.

    Außerdem ein kleiner Nachtrag:
    Die in meinen Augen sinnvollere Lösung ist, dem Player einfach ein Kollisions-Event mit diesem Item zu verpassen und sowohl score-Erhöhung als auch Zerstörung des Items dort zu handhaben. Das sähe dann so aus:

    GML-Quellcode

    1. score+=1;
    2. with other{
    3. instance_destroy();
    4. }

    Die Vorteile:
    • Du hast Kollisionsevents, die den Player betreffen, gleich auch im Player-Objekt, das hilft der Übersichtlichkeit.
    • Wegen der Funktionsweise des GM bringt dir das auch bessere Performance. Wenn du nämlich 30 Items hättest, die alle eine Kollision mit dem Spieler erwarten, dann überprüfen all diese 30 Objekte in jedem Step, ob diese Kollision gerade stattfindet. Überprüfst du das aber stattdessen im Spielerobjekt, dann wird das insgesamt nur 1 mal pro Step überprüft - eben vom Spieler. In den meisten Fällen ist sowas nicht wirklich relevant, aber wenn du doch mal ausreichend viele Objekte auf einmal hast, dann fällt sowas schon deutlich auf.