Damage des Wands. Problem.

  • GM 8

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

  • Damage des Wands. Problem.

    Hallo GameMaker Community.

    Ich habe ein folgendes Problem. Ich habe sozusagen 9 Blöcke
    die durch den Player nicht schnell kaputt werden, sondern
    gibt es ein besonderes Damage für die Blöcke die eventuell
    durch dem Player zerstört werden.

    Aber, wenn ich die Damage zahlen von dem Blöcken ändere(egal ob groß oder kleines zahl), werden
    die immer stärker oder zumindestens nicht schnell kaputt gehen. Ich will
    dass sie entsprechend sehr leicht werden. Welche zahl muss ich denn verwenden
    für das Damage, dass sie sehr leicht wird(vielleicht nur einmal von dem Player tritt)?

    Die Blöcke werden von diesem Code im "Script" Kontrolliert.
    Ich schicke ihnen es unten mal, damit sie es besser sehen.

    GML-Quellcode

    1. //Setup all the global variables for the game...
    2. globalvar
    3. WOOD_DE, WOOD_RE, WOOD_LIMIT, //Wood blocks
    4. ROCK_DE, ROCK_RE, ROCK_LIMIT, //Rock blocks
    5. GLASS_DE, GLASS_RE, GLASS_LIMIT, //Glass blocks
    6. CAT_IS_BLACK; //Cat controller
    7. /*
    8. Now assign them some values following these rules:
    9. de is density
    10. re is restitution (how bouncy)
    11. limit is miminal speed of other object to cause damage
    12. */
    13. //So jetzt gehts los. Die Damagen (klein oder groß) die sind alle stark, ich brauche die
    14. //kleinste Zahl, aber welche...
    15. GLASS_DE = 0.05;
    16. GLASS_RE = 0.5;
    17. GLASS_LIMIT = 0.5;
    18. WOOD_DE = 5;
    19. WOOD_RE = 0.1;
    20. WOOD_LIMIT = 0.1;
    21. ROCK_DE = 1.5;
    22. ROCK_RE = 0.01;
    23. ROCK_LIMIT = 1;
    24. //Initialise cat global var
    25. CAT_IS_BLACK = false;
    Alles anzeigen


    Sehr vielen Dank,
    Grüße,
  • Ohne mehr code, kommt man hier nicht weit!

    Wie wird der Damage z.b. In den Blöcken berechnet usw..


    Und noch ein Tipp von mir: Kopier nicht immer alles aus examples raus, sondern probier selber aus. Und vorallem versuche den Code zu verstehen.
    Wenn du schon Examples nutzt, versuche sie zu verstehen und nicht zu kopieren und dann hier zu fragen, warum der Code nicht funktioniert. Es wird zu 80% nicht gehen, wenn du nur Scripte aus Projekten kopierst!
  • Okay dann lass ich das sein. Könnt ihr wenigstens diese frage beantworten?

    Zum Beispiel wenn ein Spieler ein Wall berührt, soll der Wall auf die Richtung fliegen
    von der Seite wo Player gekommen ist? also wenn Player links kommt-> soll der wall auf rechts.
  • Hat nur ne Minute gedauert es zu finden...

    Das steht in den Collision-Events von o_parentBlock

    :event_collision: o_parentBlock

    GML-Quellcode

    1. ///Block Collisions
    2. //Check to see if locked or not to take take damage
    3. if lock <= 0
    4. {
    5. //No lock, so check and see how far it has moved compared to the limit value
    6. if abs(x - xprevious) > limit or abs(y - yprevious) > limit
    7. {
    8. //It has taken damage!
    9. damage +=1;
    10. //Set the image index
    11. image_index = damage;
    12. //Check to see if we should destroy the instance
    13. if damage > 2 then instance_destroy(); // // <-- Wie oft der Block getroffen werden muss, bis er zerstört wird
    14. //Set lock again
    15. lock = lockTime;
    16. //Play sound
    17. audio_play_sound(impact, 1, false);
    18. }
    19. }
    Alles anzeigen


    Zum Beispiel wenn ein Spieler ein Wall berührt, soll der Wall auf die Richtung fliegen
    von der Seite wo Player gekommen ist? also wenn Player links kommt-> soll der wall auf rechts

    Grammatik gelernt bei Yoda, du hast