weiche steuerung

  • GM 8

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

  • weiche steuerung

    huhu,

    brauch mal wieder hilfe bei "anfänger gml". ich möchte eine "weiche" bewegung für meinen player ( is nen brett )
    hab im forum das hier gefunden:

    GML-Quellcode

    1. hspd -= hspd / 20; // hspd 'smooth' auf 0 bringen
    2. if (keyboard_check(vk_left)) hspd -=0.25; // hspd ins negative bringen um sich nach links zu bewegen
    3. if (keyboard_check(vk_right)) hspd +=0.25; // hspd ins positive bringen um sich nach rechts zu bewegen
    4. repeat (abs(hspd)) { // abs(x) bringt den wert ins positive, -7 wird zu 7, 7 wird zu 7, -3 wird zu 3, etc..
    5. if (place_free(x + sign(hspd), y))
    6. x += sign(hspd);
    7. }


    das funst auch super. jetzt hab ich aber das problem dass ich noch sehr schlecht in gml bin. ich möchte zb. über ein powerup den speed erhöhen, und durch ein anderes powerup den speed senken.

    meine bisherigen versuche gingen ziemlich in die hose, entweder war das brett so schnell dass es nimmer steuerbar war, oder es beschleunigte nur paar steps und war dann wieder langsam. denke da hängt es an meinem gml verständnis.

    ich hätte gerne eine steuerung die in etwa so weich läuft, aber halt auch von nem noob wie mir noch änderbar ist (wegen powerups).
    wie könnte ich das anstellen, bzw hat jemand nen link zu beispielen tutorials oder ähnliches.


    mfg
  • hmm also ich bin auch erst am anfänger, aber wenn du den divisor der ersten rechnung niedrieger stellst, wird der spieler langsamer:

    bsp.:

    GML-Quellcode

    1. hspd -= hspd / 10; // spieler ist langsamer


    und wenn du in höher stellst, wird er schneller:

    bsp.:

    GML-Quellcode

    1. hspd -= hspd / 30; // spieler ist schneller




    mfg.snake5

  • huhu, thx schonmal für eure antworten. das mit dem speed fällt aus, da ja der speed über die variable hspd geregelt wird. hab das von snake auch grade getestet, und noch keinen sichtbaren unterschied entdeckt. aber denke da baue ich schonwieder mist, und teste noch etwas. btw. is der divisor nicht dafür da das brett zum stehen zu bringen? oder steuert er auch das beschleunigen? sry für so doofe fragen...bin halt noch noob =P
  • hm vielleicht von mir schlecht erklärt...jedenfalls hab ichs nochmal getestet und wenn du zb. 60 statt 20 nimmst (bei der ersten rechnung) ist der spieler schon spürbar schneller:

    GML-Quellcode

    1. hspd -= hspd / 60; // hspd 'smooth' auf 0 bringen
    2. if (keyboard_check(vk_left)) hspd -=0.25; // hspd ins negative bringen um sich nach links zu bewegen
    3. if (keyboard_check(vk_right)) hspd +=0.25; // hspd ins positive bringen um sich nach rechts zu bewegen
    4. repeat (abs(hspd)) { // abs(x) bringt den wert ins positive, -7 wird zu 7, 7 wird zu 7, -3 wird zu 3, etc..
    5. if (place_free(x + sign(hspd), y))
    6. x += sign(hspd);
    7. }




    mfg.snake5