durchspringbare Wall mit 39.dll

  • GM 7

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

  • durchspringbare Wall mit 39.dll

    Hi,

    mein nächstes problem steht an :P
    ich habe eine durchspringbare wall. d.h. man kann von unten durchspringen aber oben drauf stehen bleiben. Der code dazu sieht wie folgt aus:

    GML-Quellcode

    1. if(y<(obj_player.y+30))
    2. {
    3. solid = false;
    4. }
    5. else
    6. {
    7. solid = true;
    8. }

    wenn ich nun mit 2 spielern im spiel bin, fällt das obj_other_player durch die wall, wenn das obj_player darunter steht (logischerweise). Aber wie ändere ich das? Wie kann ich es machen das die wall sich nur für ein objekt verändert und für das andere solid bleibt?

    danke schonmal
    Gruß Terra
  • Wie sieht denn das Kollisionsevent aus? Also von Player zu Boden.

    Wenn dort solid eigentlich nicht "benötigt" wird, kannst du einfach zwei Variablen machen. Also:

    GML-Quellcode

    1. if(y<(obj_player.y+30)) {
    2. solid_self = false;
    3. } else {
    4. solid_self = true;
    5. }
    6. if(y<(obj_other_player.y+30)) {
    7. solid_other = false;
    8. } else {
    9. solid_other = true;
    10. }

    Und dann halt im Kollisionsevent solid mit solid_self bzw. solid_other ersetzen.

    Ich hoffe das hilft dir weiter. Allerdings könnten Informationen zum Kollisionsevent nicht schaden. ;)
  • @Ghostrider(Oder Terra's schreibweise :P):Wieso y+30? Nimm doch einfach bbox_bottom, ist viel flexibler ;)
    @Topic:Kann es sein, das dass nur passiert, wenn der echte Player unter dem Block steht?
    Weil wenn ja, würde ich sagen, das es daran liegt, dass die Wall nicht solid - wegen dem Player - ist.
  • oh sry das habe ich vergessen.

    also der o.g. code ist im step event von der wall.
    im collsion evetn vom player bzw. other player steht:

    GML-Quellcode

    1. if(other.solid ==true)
    2. {
    3. if (vspeed > 0 && !place_free(x,y+vspeed))
    4. {move_contact(270)}
    5. vspeed = 0
    6. }


    edit: danke für die hilfe. allerdings habe ichs noch nicht ganz durchschaut^^

    kannst du mir vielleicht nochmal kurz erklären was genau ins collision event soll?
    Danke

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

  • nein, es ist wesentlich einfacher so. man kann ihm z.B. einfach gravitation geben, ohne irgendetwas zu senden. genau so könnte man die "beziehung" zur wall so regeln, einfach ohne etwas zu senden. ich finde das wesentlich einfahcer.