Charakter nach dem kollisieren durch objecte gehen ohne schaden zu bekommen.

  • GM 7

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

  • Charakter nach dem kollisieren durch objecte gehen ohne schaden zu bekommen.

    Hallo

    ich habe schon die Suchfunktion benutzt aber nichts gefunden.

    Habe also 2 Objekte
    1. Den Charakter
    und
    2. Einen Gegner

    Ich möchte das wenn der Charakter mit dem Gegner Kolliesiert für 2- 4 Sekunden nicht angreifbar ist, solange auch durch Objekte gehen kann und das Bild vom Charakter blinkt (also so wie bei Zelda).
    Achja möchte natürlich auch das der Charakter beim Kollisieren abprallt (auch wie bei Zelda)

    Habe schon ein Sprite gemalt wo mein Charakter blinkt.
    Und diese codes: das mit dem global.beruehren habe ich von einem Freund.

    Im Create Event vom Charakter:


    GML-Quellcode

    1. global.beruehren = 0;


    Dann im Collision Event mit dem Gegner:
    1.

    GML-Quellcode

    1. if global.beruehren = 0 then { health -=20;}

    2.

    GML-Quellcode

    1. global.beruehren = 1;
    2. vspeed -=9
    3. alarm[0]=7
    dann im Alarm Event 0:

    GML-Quellcode

    1. vspeed = 0
    2. alarm[1]=7

    und Alarm Event 1:[b]

    GML-Quellcode

    1. global.beruehren = 0;
    2. alarm[0]=2

    [/b]


    Meine Probleme sind.
    1.
    Wie kriege ich es hin dass der Charakter in die Richtung fliegt wie es Logisch wäre. Ich habe es ja so gemacht das er immer nach oben fliegt.
    2.
    Nach dem Kollisieren mit dem Gegner nicht sofort angreifbar ist.
    3.
    Das Bild sich ändert, habe es mal versucht bei mir erschien das Bild wie er sich verletzt immer wieder.
    4.
    ASO und durch Gegner hindurch gehen kann.
    Hoffe ihr könnt mir helfen :D
    Mein Aktuelles und auch einziges Projekt ist "The Color of Life"
    Es wird ein Rollenspiel! Eine lange Story die auch gut ist. Das umzusetzen dauert eben bis 2011!
    Freue mich über jede Hilfe die ich bekommen kann. ^^
    Bald GM8 :thumbsup: wird der hammer xD
  • Also....

    Vergess den code da oben, der ist ja total verwurschtelt!

    Create event :

    GML-Quellcode

    1. zusammen=false;


    Collision event:

    GML-Quellcode

    1. if (zusammen=false)
    2. {
    3. zusammen=true;
    4. alarm[0]=60;  //gibt an wie lange alles dauern soll
    5. sprite_index=spr_blinkend; // spr_blinkend musst du natürlich austauschen mit deinen sprite
    6. direction=-direction; // sorgt dafür das du umdrehst
    7. }




    Alarm 0:

    GML-Quellcode

    1. zusammen=false
    2. sprite_index=spr_carakter// spr_carakter ist das normale sprite, das musst du natürlich anpassen


    So einfach
  • Das ist irgendwie komisch. Also die Gegner bewegen sich und ich möchte das wenn ich mit dem gegner kollisiere leben verliere und ein stückchen vom gegner wegfliege. Und für 3 sekunden (sind ja 90 steps glaub ich) nicht mit dem gegner kollisieren kann. Die befehle würden ja sonst wieder vom neuen starten.
    Mein Aktuelles und auch einziges Projekt ist "The Color of Life"
    Es wird ein Rollenspiel! Eine lange Story die auch gut ist. Das umzusetzen dauert eben bis 2011!
    Freue mich über jede Hilfe die ich bekommen kann. ^^
    Bald GM8 :thumbsup: wird der hammer xD
  • Ja, ok,
    das musst man natürlich nocht machen.

    Create event hinzufügen:


    andere=0
    andere_speed=0

    Im Collision event zwischen den klammern hinuzügen:

    health-=5 //zieht 5 punkte vom health ab


    andere=object_get_name(other) // speichert den name vom gegener in der variable andere


    andere_speed=other.speed // speichert denn speed vom gegner in die varialble andere_speed


    other.speed=0 // sorgt dafür das gener stehen bleibt

    Alarm 0 hinzufügen:

    andere.speed=andere_speed // Setzt den speed vom gegner wieder auf den wie sie vorher war

    Sollte funken, habe es nicht ausprobiert
  • Da kommt der Fehlercode nachdem kollisieren mit dem Gegner

    ERROR in
    action number 2
    of Alarm Event for alarm 0
    for object charakter:

    Error in code at line 1:
    andere.speed=andere_speed // Setzt den speed vom gegner wieder auf den wie sie vorher war

    at position 1: Wrong type of variable index

    edit: wieso bleiben die gegner nach dem kollisieren stehen und bewegen sich nicht weiter? Das blinken kommt auch irgendwie nur wenn ich nicht zuletzt mit dem charakter gegangen bin.

    Der Charakter soll ja auch noch zurückgeworfen werden.
    Mein Aktuelles und auch einziges Projekt ist "The Color of Life"
    Es wird ein Rollenspiel! Eine lange Story die auch gut ist. Das umzusetzen dauert eben bis 2011!
    Freue mich über jede Hilfe die ich bekommen kann. ^^
    Bald GM8 :thumbsup: wird der hammer xD

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

  • Der Gegner bleibt stehen, weil du den Code da benutzt... Hättest du dir das durchgelesen, wüsstest du wieso.
    Ein Fehler kommt, weil du den Namen des Objektes speicherst, aber die ID musst du benutzen. Heißt den Code in "andere=other" ändern.
    Das Problem mit dem Blinken musst du mir genauer erklären. So kann ich nicht helfen. Eine Sache die mir dazu aber einfällt wäre, einfach die Transparenz zu ändern. Heißt von 1 auf .5 und wieder auf 1 und wieder auf .5 usw.
  • also ich check grade nichts mehr ?( 8| :wacko:

    bin GML anfänger und lerne es erst... sry aber ich verstehe nicht so genau was ich jetzt machen soll 8| 8|
    Mein Aktuelles und auch einziges Projekt ist "The Color of Life"
    Es wird ein Rollenspiel! Eine lange Story die auch gut ist. Das umzusetzen dauert eben bis 2011!
    Freue mich über jede Hilfe die ich bekommen kann. ^^
    Bald GM8 :thumbsup: wird der hammer xD
  • Ich habe mal ein paar funktionen gemacht, die deinen wünschen entsprechen sollten. Du musst nur auf scripts und dann auf import script gehen und die folgende datei angeben.
    Es gibt folgende funktionen:
    c_create() // Einfach im create event vom karakter
    c_collision(alarm,sek,spr,health) // Im collision event mit dem gegner. alam gibt an in welchem alarmevent sich der folgende code befindet(nummer). sek gibt an wie lange alles dauern in sek. spr gibt an welches sprite gezeigt werden soll wenn du mit dem geger in den konntakt gekommen bisst. health gibt an wie viel health ABGEZOGEN werden soll
    c_alarm(spr) // Im zuvor angebenem alaram event. spr gibt an welches sprite angezeigt werden soll wenn alles wieder normal ist.
    c_other_create() // im create event vom gegener

    c_other_collision(alarm) // im collision event im gegner mit dem karakter. alarm ist die nummer des alarmes in der sich die nächste funktion befindet
    c_other_alarm() //Im zuvor angegebenen alarm event des gegers.

    Hier ist die GML datei: c_funktions.gml
    Und hier ein example: c_funktions.gmk

    Zum schluß muss ich noch zwei sachen los werden:
    1. Das ist ganz sicher nicht die elleganteste metode.
    2. Die ganze Geschichte hat ein kleines probelemchen: Der erste gegner mit dem man in den kontakt kommt, kommt einfach nicht mehr nach der angegebenen zeit dazu sich zu bewegen.

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

  • @ SDX
    das mit dem blinken klappt super. Danke für deine Hilfe, ist echt super das du das für mich gemacht hast, danke dafür :) :thumbup:

    Sooo jetzt habe ich noch ein paar Fragen.

    1. Wo muss der code rein, wo ich health verliere? Weil wenn ich es im kollisions event mache verliert der Charakter die ganze zeit leben, da er ja dauerhaft beim Gegner ist.

    2. Bei dir steuert man ja mit der Maus. Bei meinem Spiel steuert man mit der Tastatur. Wie kriege ich es hin das der Charakter beim kollisieren mit dem Gegner abprallt, also egal von welcher seite ich denn Gegner berühre das der Charakter halt wegprallt.

    zu dem blinken... Da ich bei meinem Spiel verschiedene Sprites für jede richtung habe funktioniert es vieleicht mit dem blinken nicht richtig. Wenn ich direkt wieder eine andere Taste drücke. Außerdem muss er ja nach dem kollisieren, wenn ich nach oben, unten, links, rechts gehe auch das blinken haben.

    Hoffe du kannst mir dabei auch helfen. Wenns zu aufwendig ist kannst es auch lassen
    Mein Aktuelles und auch einziges Projekt ist "The Color of Life"
    Es wird ein Rollenspiel! Eine lange Story die auch gut ist. Das umzusetzen dauert eben bis 2011!
    Freue mich über jede Hilfe die ich bekommen kann. ^^
    Bald GM8 :thumbsup: wird der hammer xD
  • 1. Wo muss der code rein, wo ich health verliere? Weil wenn ich es im kollisions event mache verliert der Charakter die ganze zeit leben, da er ja dauerhaft beimGegner ist.

    In der c_collision(alarm,sek,spr,health) funktion musst du nur bei health angeben wie viel health abgzogen werden soll!

    2 und 3, mache ich wenn ich weiß ob das spiel total topdown ist oder was anderes!

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

  • die sicht ist wie bei a link to the past.

    Also oben schreg.
    Mein Aktuelles und auch einziges Projekt ist "The Color of Life"
    Es wird ein Rollenspiel! Eine lange Story die auch gut ist. Das umzusetzen dauert eben bis 2011!
    Freue mich über jede Hilfe die ich bekommen kann. ^^
    Bald GM8 :thumbsup: wird der hammer xD
  • Ich habe dir mal was gemacht. Es gibt jetzt eine neue funktion, c_step()
    Du hast für jede richtung einen eigenen sprite, ichhabe es jetzt so gemacht das es ein sprite ist mit verschidenden subimages.

    neu ist:

    c_create:
    c_create(gegner1,gegner2,gegner3,gegner4,..) max 13 gegner


    c_collision(arg1,arg2,arg3,arg4,arg5):

    argument1=Im welchen alarm event (nummer) ist die c_alarm funktion?
    argument2=Wie viele sekunden soll alles andauern?
    argument3=Der sprite der gezeigt werden soll wenn alles im gang ist
    argument4=Wie viel soll vom health abgezogen werden?
    argument5=Wie weit soll der karakter zurückspringen


    c_other_collision(arg1,arg2):

    argument1=Im welchen alarm event (nummer) ist die c_other_alarm funktion?
    argument2=Wie lange soll es andauern

    Hier zum download: Klick-Klack
    Hier die scripte: Klick-Klack

    PS: Wenn der browser die datei nicht downloadet, sondern anzeigt, musst du einfach nur Strg+S drücken. Ist ein problem das ich noch zu lösen habe!
  • danke sieht schon mal richtig gut aus ;D

    ich schau es mir später noch genauer an
    Mein Aktuelles und auch einziges Projekt ist "The Color of Life"
    Es wird ein Rollenspiel! Eine lange Story die auch gut ist. Das umzusetzen dauert eben bis 2011!
    Freue mich über jede Hilfe die ich bekommen kann. ^^
    Bald GM8 :thumbsup: wird der hammer xD
  • Benutzer online 4

    4 Besucher