Objekte aneinander Binden?

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

  • Objekte aneinander Binden?

    Hallo GM´s :happy:

    Hab mal wieder ein Anfängerproblem.

    Gibt es bei dem Breakout von Mark Overmars

    die Möglichkeit, das zum Anfang des Spiels, der Ball am Paddel
    hängt und erst nach Mausklick los geht?

    In der Version von Mark geht der Ball ja automatisch los. X(
    Hab jetzt schon 2 Tage und ca. 10 Kannen Kaffee lang, rum
    probiert aber nix erreicht außer das der Ball im Stepevent
    an der Kelle hängt.
    Abschießen ging dann aber nicht. :no:

    Danke schon mal
    VegasX
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............
  • So kann man das machen ohne dabei irgendetwas einzustellen.

    Erstellungs ort des Objekts:

    GML-Quellcode

    1. ins=instance_create(x,y-32,obj_ball) //anpassen wenn nötig
    2. ins.first=1
    3. ins.obj=id
    4. ins.klebt=1


    Step Event des Objekts dass, das andere verfolgt:
    EDIT: End Step Event ist vielleicht besser.

    GML-Quellcode

    1. if first=0 and instance_exists(obj) and klebt=1
    2. {
    3. x+=obj.x-obj.xprevious
    4. y+=obj.y-obj.yprevious
    5. }
    6. else
    7. first=0
    8. if mouse_check_button_pressed(mb_left)
    9. {
    10. klebt=0
    11. speed=2
    12. direction=45
    13. }
    Alles anzeigen


    EDIT 2: Abschieß möglichkeit eingebaut. Diese Variante ist gut wenn du ein Powerup hast das dein Paddle klebrig macht (der Ball bleibt bei Berührung des Paddles stehen und kann dann mit dem Paddle bewegt werden).

    EDIT 3: Jetzt noch mal

    Kollision mit Paddle:

    GML-Quellcode

    1. //<---bounce befehl hier rein
    2. if kleb_power=1
    3. {
    4. klebt=1
    5. speed=0
    6. }

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

  • Erstmal legst du im create event fest, ob der Ball gestartet ist:

    GML-Quellcode

    1. start=0

    Dann gibst du im step event an wo der Ball sein soll, wenn er noch nicht gestartet ist:

    GML-Quellcode

    1. if instance_exists(obj_paddle)
    2. {
    3. if start=0
    4. {
    5. x=obj_paddle.x+16
    6. y=obj_paddle.y-8
    7. }
    8. }
  • @Bernt
    Dein Vorschlag würde mir am meisten zusagen weil ich das
    mit dem "Powerup" auch geplant hab aber leider bekomm ich
    es nicht hin :(
    Edit:
    Beim Orginal heißen die Objecte
    bat_normal
    ball_normal
    hab ich auch geändert aber nix geht.
    Muss ich denn im Orginal Game nicht auch noch was löschen?


    @battlegorge
    Deine Variante funktioniert auf Anhieb aber wie bekomm ich nun
    den Ball abgeschossen?
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............

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

  • Habs eben rausgefunden ;)

    GML-Quellcode

    1. if instance_exists(bat_normal)
    2. {
    3. if start=0
    4. {
    5. x=bat_normal.x+16
    6. y=bat_normal.y-18
    7. if mouse_check_button_pressed(mb_left)
    8. start=1
    9. speed=8
    10. direction=70+random(40)
    11. }
    12. }
    Alles anzeigen


    Aber die Variante von @Bernt muss ich mir nochmal näher ansehen ;)
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............
  • Das da muss ins Ball End Step Event:

    GML-Quellcode

    1. if first=0 and instance_exists(obj) and klebt=1
    2. {
    3. x+=obj.x-obj.xprevious
    4. y+=obj.y-obj.yprevious
    5. }
    6. else
    7. first=0
    8. if mouse_check_button_pressed(mb_left)
    9. {
    10. klebt=0
    11. speed=2
    12. direction=45
    13. }
    Alles anzeigen


    Und das muss auch noch rein:

    Bat Create event:

    GML-Quellcode

    1. first=1


    Bat Step event:

    GML-Quellcode

    1. if first=0
    2. x=mouse_x //anpassen wenn nötig
    3. else
    4. first=0