Plattform script anpassung für Horizontalen speed

  • GM 8

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

  • Plattform script anpassung für Horizontalen speed

    Hallo,

    ich bin noch nicht alzu lang dabei und stehe deswegen wieder vor einem ich denke mal eher kleinem problem (für euch).
    Ich nutze folgendes Script für mein J&R
    Spoiler anzeigen

    GML-Quellcode

    1. //////////////// PLATFORM SCRIPT ////////////////////
    2. //
    3. // Copyright Simon Donkers 16-06-2003
    4. // www.simondonkers.tk - simondonkers@hotmail.com
    5. // the arguments are: behind is recommandable value
    6. // argument0 is horizontal speed 4
    7. // argument1 is jump speed 10
    8. // argument2 is gravity 0.3
    9. // argument3 is speed on ladder 3
    10. // argument4 is object ladder ?
    11. //
    12. // This script will if placed in the step event
    13. // generate a correct movement in a platform game
    14. // all solid objects are ground
    15. // replace //sprite_index := ...; discription with:
    16. // sprite_index := 'the sprite matching the discription';
    17. //
    18. /////////////////////////////////////////////////////
    19. if keyboard_check(vk_left) = false and keyboard_check(vk_right) = false and keyboard_check(vk_up) = false and keyboard_check(vk_down) = false and vspeed = 0 then
    20. {
    21. //sprite_index := ...; sprite stand still
    22. }
    23. gravity := argument2;
    24. if (vspeed >= 0 && not place_free(x,y + vspeed + 1)) then
    25. {
    26. move_contact_solid(270,vspeed + 1);
    27. vspeed = 0;
    28. gravity := 0;
    29. }
    30. if keyboard_check(vk_left) and (not keyboard_check(vk_up)) then
    31. {
    32. for (i = 0; i<= 8; i += 1;)
    33. {
    34. if place_free(x-argument0,y-i)
    35. {
    36. //sprite_index := ...; sprite left
    37. x-= argument0; y-= i; exit;
    38. }
    39. }
    40. }
    41. else
    42. {
    43. if place_free(x-argument0,y + vspeed + argument2) and keyboard_check(vk_left) then
    44. {
    45. x := x-argument0;
    46. //sprite_index := ...; sprite flying/falling
    47. }
    48. }
    49. if keyboard_check(vk_right) and (not keyboard_check(vk_up)) then
    50. {
    51. richtung = "rechts";
    52. for (i = 0; i<= 8; i += 1;)
    53. {
    54. if place_free(x + argument0,y-i)
    55. {
    56. //sprite_index := ...; sprite right
    57. x += argument0; y-= i; exit;
    58. }
    59. }
    60. }
    61. else
    62. {
    63. if place_free(x + argument0,y + vspeed + argument2) and keyboard_check(vk_right) then
    64. {
    65. x := x + argument0;
    66. //sprite_index := ...; sprite flying/falling
    67. }
    68. }
    69. if place_meeting(x,y,argument4) then
    70. {
    71. gravity = 0; vspeed = 0;
    72. //sprite_index := ...; sprite climbing
    73. }
    74. if (keyboard_check(vk_up)) then
    75. {
    76. if place_meeting(x,y,argument4) then
    77. {
    78. if place_free(x,y-argument3) y -= argument3;
    79. //sprite_index := ...; sprite climbing
    80. }
    81. else
    82. if place_free(x,y + 1) = false then
    83. {
    84. vspeed = -argument1;
    85. }
    86. }
    87. if (keyboard_check(vk_down)) then
    88. {
    89. if place_meeting(x,y + argument3 + sprite_height-sprite_yoffset,argument4) and place_free(x,y + argument3) then
    90. {
    91. y := y + argument3;
    92. vspeed := 0;
    93. //sprite_index := ...; sprite climbing
    94. }
    95. else
    96. {
    97. if place_meeting(x,y + sprite_height-sprite_yoffset,argument4) then
    98. {
    99. move_contact_solid(270,argument3);
    100. vspeed := 0;
    101. }
    102. }
    103. }
    104. if (not place_free(x,y-sprite_yoffset + vspeed)) then
    105. {
    106. vspeed := argument2;
    107. }
    108. if (not place_free(x,y)) and place_free(x,y-1) then
    109. {
    110. y := y-1;
    111. vspeed := 0;
    112. }
    113. if vspeed!= 0 then
    114. {
    115. //sprite_index := ...; sprite flying/falling
    116. }
    Alles anzeigen


    Wenn ich nun de horizontalen speed von meiner figur setze passiert aber nichts. (ich will sie zur seite schleudern lassen)
    Hat evtl. jemand eine vergleichbare engine oder weiß jemand was ich an dieser anpassen muss damit es funktioniert?
  • Ich glaube es is deswegen, weil der hspeed durch das keyboard gesteuert wird.
    Du müsstest die keyboard_check-funktionen zu variablen machen, zb. hsp, damit du auch noch mit anderen variablen den hspeed beeinflussen kannst.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • Benutzer online 1

    1 Besucher