Action, die in einem Anderen Event etwas ändert

  • GM 8

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

  • Action, die in einem Anderen Event etwas ändert

    Hi

    Ich hab n Problem, und nämlich möchte ich einen Shop machen, wo der Player seine Geschwindigkeit
    erhöhen kann.

    Im obj_player-Object hab ich zum bewegen diese Events:

    :event_keyboard: A-key
    Jump to position (-8,0)
    :event_keyboard: D-key
    Jump to position (8,0)
    :event_keyboard: S-key
    Jump to position (0,8
    :event_keyboard: W-key
    Jump to position (0,-8)

    Jetzt möchte ich, wenn der Player auf das "Kaufen"-Object klickt, statt 8 einfach 9 ist,
    und wenn er nochmal klickt 10 usw.

    Im Shop-Raum ist der Player nicht zu sehen!

    Geht das?

    Gruss

    Goldendragon
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • Dafür musst du anstatt 8 eine variable nehmen.
    Im create event am besten :action_variable: dir einen namen dafür ausdenken und den wert 8 geben.
    und wenn auf 9 geändert werden soll einfach nochmal :action_variable: aber einen haken bei realtiv machen und wert 1 damit das um 1 erhöht wird.

    Edit: hab deinen post nich ganz gelesen. aber das is zumindest ein anfang. mit drag&drop ist das ziemlich kompliziert benutzt lieber GML.
  • Hi

    Das Beispiel funktioniert zwar, lässt sich aber komischerweise nicht auf mein Project übertragen.

    Okay ich hab jetzt im obj_shop_buy_speed :event_mouse: Global Left Released mit schnelligkeit +=1

    Im Create-Event des Players hab ich schnelligkeit = 8

    In den Bewegungsevents (z.B. A-key) hab ich:

    :action_variable: If schnelligkeit is equal to 8
    :action_begin:
    :action_jumpposition: Jump to position (-8,0)
    :action_end:
    :action_else:
    :action_ifvariable: If schnelligkeit is equal to 9
    :action_begin:
    :action_jumpposition: Jump to position (-9,0)
    :action_end:
    :action_else:
    usw. (bis 12)

    Aber wenn ich nun das Spiel starte, geht der Player trotzdem schon mit Speed = 12 umher!

    Wieso???
    Schul-Abschlussarbeit: Gamesammlung

    Made with: Game Maker 8 Pro
    Fertigstellung: Frühling 2011


    Fortschritt:
    Games: 5/20 (voraussichtlich 20)
    Gameübersicht-Fortschritt: 0%
  • ich würd dir empfehlen, bei dieser sache speed statt jump to zu verwenden.

    schreib ins create event:

    GML-Quellcode

    1. global.schnell = 1


    a - key (press)

    Spoiler anzeigen

    GML-Quellcode

    1. if global.schnell = 10 hspeed = -10
    2. if global.schnell = 9 hspeed = -9
    3. if global.schnell = 8 hspeed = -8
    4. if global.schnell = 7 hspeed = -7
    5. if global.schnell = 6 hspeed = -6
    6. if global.schnell = 5 hspeed = -5
    7. if global.schnell = 4 hspeed = -4
    8. if global.schnell = 3 hspeed = -3
    9. if global.schnell = 2 hspeed = -2
    10. if global.schnell = 1 hspeed = -1


    a-key (unpressed)

    GML-Quellcode

    1. hspeed = 0


    bei d musst du das selbe machen nur halt ohne dem Minus.
    bei w musst du hspeed durch vspeed ersetzen. Die Minuse bleiben
    bei s musst du das gleich wie bei w ohne minus machen.

    Bei deinem Kauf Menü Button musst du machen:

    (Global) Left pressed

    GML-Quellcode

    1. if DER PREISNAME > DER PREIS MINUS EINS
    2. {
    3. global.schnell += 1
    4. // evtl. dein Rest code
    5. }


    hoffe es funktioniert.
    mfg Salmi
  • wtf...
    Ich sage nur:

    GML-Quellcode

    1. x+=schnelligkeit

    statt tausend if-abfragen.

    Variablen lassen sich nicht nur für abfragen, sondern auch für Zuweisungen nutzen. Es verweist einfach auf den in ihr gespeicherten Wert.