Bei Collision speed -= 1 für 5 Sekunden

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

  • Bei Collision speed -= 1 für 5 Sekunden

    Das gabs noch nicht bei der SU; soweit ich gesucht habe.


    Hallo dann;

    ich habe ein kleines problem unzwar;

    Ich habe ein Eis-schuss, der wenn er den Gegner trifft ein Eis-Splash.obj erstellt.

    und wenn der Gegner mit eis-splash.obj collidiert dann soll er für 5 sekunden speed -1 bekommen.


    bis jetzt sieht mein code so aus:(:

    im collisionsevent vom gegner mit eis-splash.obj:

    GML-Quellcode

    1. speed -= 1;



    Eis-Splash.obj:
    Create;Event:

    GML-Quellcode

    1. lifetime = 3

    Step;Event:

    GML-Quellcode

    1. lifetime -=1
    2. if lifetime < 1 {
    3. instance_destroy()
    4. }



    und im Eis-Schuss.obj natürlich:
    collisionsevent mit alle gegner:

    GML-Quellcode

    1. instance_create(x,y,frost_splash)
    2. instance_destroy()



    ...habe echt schon lange überlegt wie ich da weiterkommen könnte aber ich scheiter jedesmal erneut .. ?(

    Grüße..
  • JOhannski, also danke für dein example, aber D&D, versteh ich nicht so ganz, und habe dafür auch nicht sehr große Interesse (eher GML)



    also ich habe jetzt;

    ne variable gemacht:

    beim gegner:
    im collisionsevent mit frost_splash
    monster_speed = room_speed*5

    und jetzt noch im Step Event
    room_speed -= 1

    oder wie, ich weiß nicht wie es gemeint ist mit dem runterzählen lassen :(
  • Ich würds so machen - da der Gegener einfieren soll, hab ich 0 als Wert genommen :

    Gegener Collisions Event:

    GML-Quellcode

    1. oldSpeed = speed;
    2. speed = 0;
    3. alarm[0] = room_speed * 3;


    Alarm[0] Event erstellen, dort:

    GML-Quellcode

    1. speed = oldSpeed;
    On teh internet u pwn noobs - but in real life noobs own you.
  • Danke für deine Antwort; aber es funktioniert irgendwie nicht, von daher poste ich mal den Rest...


    Es ist jetzt so:

    GML-Quellcode

    1. schuss = instance_create(x,y,frost_schuss);
    2. schuss.speed=5.5;
    3. if instance_exists(all_monster) schuss.direction=point_direction(x,y,all_monster.x,all_monster.y)
    4. alarm[4]= 1 * room_speed;

    Das ist im Alarmevent vom Turm, der auf das Monster schießt.

    GML-Quellcode

    1. if (distance_to_object(all_monster) <= 100)
    2. { mp_linear_step(all_monster.x,all_monster.y,speed,false); }
    3. if (distance_to_object(all_monster) >= 100)
    4. { with instance_nearest(x,y,frost_schuss) {instance_destroy()}; }

    Das ist er Schuss, der das Monster verfolgen soll.
    Dort; im Collisionsevent mit allen Monstern;

    GML-Quellcode

    1. instance_create(x,y,frost_splash)
    2. instance_destroy()

    und im frost_splash, im Create event:

    GML-Quellcode

    1. lifetime = 3

    Step event;

    GML-Quellcode

    1. lifetime -=1
    2. if lifetime < 1 {
    3. instance_destroy()
    4. }



    der Alarm[6] im Monster:

    GML-Quellcode

    1. speed = oldSpeed;


    im Collisionsevent mit frost_splash:

    GML-Quellcode

    1. oldSpeed = speed;
    2. speed = 0;
    3. alarm[6] = room_speed * 3;



    Ist dort irgendwo ein Fehler drin das es mit dem Speed nicht funktionieren kann..? Meiner Meinung nach nicht :( :(
  • und im frost_splash, im Create event:

    lifetime = 3

    Step event;

    lifetime -=1
    if lifetime < 1 {
    instance_destroy()


    Das ist doch sofort erfüllt. 30 Steps sind normalerweise 1 Sekunde. Dein frost_splash lebt also maximal 1/10tel Sekunde.

    Es Ersatz habe ich dir den Code mit dem Alarm[0] geschrieben.
    On teh internet u pwn noobs - but in real life noobs own you.
  • Oh da habe ich was vergessen zu erklären:


    Die frost_splash sprite soll ja nur ganz kurz angezeigt werden (d.h. es ist schon richtig dass es nicht mal eine Sekunde bleibt)..

    ..wenn frost splash dann mit dem monster (für 0.1 sek) collidiert, soll das monster aber den speed -3 für ca. 5 Sekunden kriegen...

    Ich hoffe ich habe es jetzt richtig erklärt =)


    ps. frost_splash soll nur ganz kurz erscheinen, aber die wirkung von frost splash soll sich verlängern!