Steigung Hochlaufen?

  • Steigung Hochlaufen?

    Wie kann ich es einstellen, dass der Chara (bei einem J&R eine bestimmte Steigung hochlaufen kann,
    (sagen wir mal 45°,) ohne springen zu müssen?
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Quellcode

    1. {
    2. for (i=0; i<=16; i +=1)
    3. if place_free(x+4,y-i) { x += 4; y -= i; exit;
    4. }

    ist jetzt ein bischen schwierig für mich die funktion zu erklären, lies es dir einfach mal in der hilfe durch, da ist es verständlich erklärt.
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Nobody-86 ()

  • Original von Nobody-86

    Quellcode

    1. {
    2. for (i=0; i<=16; i +=1)
    3. if place_free(x+4,y-i) { x += 4; y -= i; exit;
    4. }

    ist jetzt ein bischen schwierig für mich die funktion zu erklären, lies es dir einfach mal in der hilfe durch, da ist es verständlich erklärt.

    Sry, aber von GML versteh ich herzlich wenig.
    (Eigendlich garnix.)
    Aber ich werd mal in der Hilfe nachsehen ob ich's da verstehe.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Original von Nobody-86

    Quellcode

    1. {
    2. for (i=0; i<=16; i +=1)
    3. if place_free(x+4,y-i) { x += 4; y -= i; exit;
    4. }

    ist jetzt ein bischen schwierig für mich die funktion zu erklären, lies es dir einfach mal in der hilfe durch, da ist es verständlich erklärt.


    Bist du dir sicher das es so geht? Abgesehen davon deine Funktion nur in eine Richtung funktioniert gehts nur beraug (also y wird nur kleiner).

    Ich hab das ganze so gelöst. Das gilt jetzt für steigungen von Maximal 45 °

    Quellcode

    1. //Also gehm mir mal davon aus das wir eine geschwindigkeit haben.
    2. //Das währe dannn eventuell hspeed.
    3. //Das ist eine Schleife die einen Step für den Gesamtwert von Hspeed macht.
    4. //Das heißt wenn hspeed 9 ist wird die Schleife 9 mal durchlaufen wobei count
    5. //einen Wert zwischen 0 und 8 hat (nicht das wir count jetzt brauchen)
    6. for( count = 0; count < abs(hspeed); count+=1)
    7. {
    8. //Als erstes überprüfte ich ob unter mir mehr als 1 pixel Freiraum ist.
    9. //Wenn dem so ist kannst du hier irgendwelche fallen routinen einbauen
    10. if( place_free(x+sign(hspeed), y+2)
    11. {
    12. //Falling Down
    13. break;
    14. }
    15. else
    16. //Dann überprüfte ich ob schräg unter mir platz frei ist
    17. if( place_free(x+sign(hspeed), y+1)
    18. {
    19. x+=sign(hspeed);
    20. y+=1;
    21. }
    22. else
    23. //Wenn dem auch nicht so ist checke ich ob neben mir was frei ist
    24. if( place_free(x+sign(hspeed), y)
    25. {
    26. x+=sign(hspeed);
    27. }
    28. else
    29. //Jetzt bleibt ansich nur mehr eine Steigung übrig
    30. if( place_free(x+sign(hspeed), y-1)
    31. {
    32. x+=sign(hspeed);
    33. y-=1;
    34. }
    35. //Wenn das alles falsch ist stehst du vermutlich vor einer Steigung über
    36. //45 ° oder vor einer Mauer
    37. else
    38. {
    39. x+=sign(hspeed);
    40. y-=1;
    41. break;
    42. }
    43. }
    Alles anzeigen


    Okay.... alle Klarheiten bereinigt :3 ? Ohne GML ist so was kaum zu löschen schätz ich mal. Ich hab einfach nie die D&D Objeckte benutzt, deshalb weiß ich jetzt auch nicht was man mit denen alles anstellen kann.
    ...

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

  • Wow! Shoba gibt seinen, ich zitiere "ganz böse getricktst"en Schräge-Laufen-Code preis... Wenn ich mal ein Jump&Run machen sollte, dann weiß ich jetzt auch wie man dieses Problem lösen kann.
    Einige meiner Spiele:
  • Ich weiß nur das ich ihn schonmal wo gepostet habe, aber nicht mehr wo. Ich glaube in der GMC, aber bin mir nimma sicher. Eh egal. Ganz sauber ist der Code einfach nicht da man ab und zu irgendwo hängenbleibt. Ist mir in meinem Demo 1 oder 2 mal schon passiert, weiß noch nicht genau wieso.
    ...
  • Mmmhh... Hübsch ^^
    Aber ich habe dieses Prob auch gelöst, allerdings basierend auf Positionsverschiebung statt auf speeds. Ich hab den code leider net hier, aber ich beschreib es mal ausm Kopf. Zufällig habe ich mich gestern damit beschäftigt (hehe, warum wohl? ^^).

    Vorraussetzend...
    ...ist allerdings, dass man stehts "gut" auf dem Boden landet,
    ...ist, dass es jetzt nur für nach Rechts-Laufen ist, bei Links müssen nur alle x's Additionen durch Subtraktionen ersetzt werden,
    ...ist, dass diverse Konstanten benutzt werden
    ...ist, dass es in ein key-event kommt

    Quellcode

    1. // Dä MewX-Schrägen-Code
    2. if !place_free(x,y+1) then // Vorrausetzung, dass unten kein Platz ist
    3. {
    4. // 8 ist provisorisch, weniger wäre evtl. angebracht. Wenn man es nur mit einem Pixel macht, erübrigt sich vieles.
    5. for (i=8;i >= 0;i-=1)
    6. {
    7. // Runterlaufen checken
    8. if place_free(x+movespeed,y+i)
    9. {
    10. x += movespeed;
    11. y += i;
    12. break; // Schleife verlassen
    13. }
    14. // Rauflaufen checken
    15. // Diesmal müssen wir von unten nach oben durchgehen, sonst landet man immer in der Luft
    16. // Hierzu bilden wir von i und dem maximalen i-Wert einfach die Differenz (8-i) => arithmetisches Mittel ^^
    17. if place_free(x+movespeed,y+(8-i))
    18. {
    19. x += movespeed;
    20. y += (i-8);
    21. break; // Schleife verlassen
    22. }
    23. } // for-Ende
    24. } // if-Ende
    25. else if place_free(x+movespeed,y) then x += movespeed; // Im Fallen steuern
    Alles anzeigen

    Wenn der Code sich als gut funktionierend herausstellend sollte (er hatte noch nicht gnz soviel Praxis), dann würde ich ausnahmsweise mal um Erwähung bitten :)
  • warum einfach wenns auch kompliziert geht nicht war ^^
    Bist du dir sicher das es so geht? Abgesehen davon deine Funktion nur in eine Richtung funktioniert gehts nur beraug (also y wird nur kleiner).

    also bei meinem jump, shoot and run game klappts ganz hervorragentd. ist aber genauso wie bei MewX nur für eine richtung gedacht. bei der anderen muss man + durch - ersetzen.
    :) Nobody is perfect (-:

    "Dummköpfe sind Denkerköpfen weit überlegen. Zahlenmäßig." Ernst Ferstl
  • Nene, Shoba meint, es geht nur in eine Richtung im Sinne von nach oben bzw. nach unten. Bei mir sind ja auch zwei Sachen drin, bei dir nru eine. Dein Script ist nur fürs hochlaufen, Shobas udn meins für hoch und runter laufen,d enn je nach Engine würde beim Runterlaufen in einen "Fall-Modus" gewechselt.
  • Ok, thx so weit.^^
    Ich weis noch nicht, welches der Scripts ich verwende...
    Ich werd alle mal durchprobieren, und je nachdem, was am besten klappt.

    Für den Anfang:
    Kennt ihr auch 'ne Engine was die gleiche Thematik beinhaltet, allerdings nur mit den vom GM vorgegebenen Bausteinen arbeitet?
    (Das währe für mich leichter zu verstehen, und zu modifizieren.)

    Aber vorerst:
    THX!!!
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Gibt's auch irgendwo (!deutsche!) Tutorials zu GML?
    In der Hilfe ward das alles etwas zu schnell erklärt...

    EDIT:
    Hat sich bereits erledigt.
    hab 'n super Tut. ;)

    THX 2 Defmaster!

    Und - Oh Wunder - Ich fange an eure Vorschläge zu durchblicken. ;)

    Also meinetwegen kann das Thema hier geschlossen werden.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Kilik ()

  • Benutzer online 1

    1 Besucher