Simple Platform Engine

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

  • gibts auch ne möglichkeit ohne pro?
    copyboy hats ja auch geschaft und es ging bei ihm.
    ich hab einfach als varialble image_xscale benutzt, aber
    trotzdem brauch ich pro. das muss doch irgendwie gehn.
    edit:
    wenn ich das bild nicht spiegeln lasse und mein hero
    sozusagen linksrum rückwärts läuft gehts eigentlich.
    könnte man das problem beheben indem ich einfach
    manuel einen linkslaufsprite einbaue und es nicht spiegeln
    lasse?
  • Gutes example...

    hi, habe eine Bitte an dich oder auch an die Community . Ich habe das example gedownloadet und auf der Basis auch Spiele versucht zu machen nur steig ich nicht wirklich durch . Wäre richtig nett wenn ihr eine Erklärung für die Schritte machen könnten also ich hab schon probleme mit :

    GML-Quellcode

    1. //if (place_meeting(x,y-1,obj_player)) with (obj_player) {if (place_meeting(x,y-1,obj_player)) {with (obj_player)
    2. if (other.speed > 0) {dir = 0;} else {dir = 180;}
    3. if (place_meeting(x+other.speed,y,obj_blocks)) {
    4. move_contact_solid(dir,abs(other.speed));
    5. }
    6. else {
    7. x += other.speed;
    8. }
    9. }
    10. // - Wegschieben -
    11. if (place_meeting(x+speed,y,obj_player)) {
    12. with (obj_player) if (place_meeting(x+other.speed,y,obj_blocks))
    13. {global.blockahead = 1} else {global.blockahead = 0;}
    14. if (global.blockahead) {speed = -speed;}
    15. else {obj_player.x += speed;}
    16. }
    Alles anzeigen
    :whistling: :whistling: :whistling: :whistling: :whistling: wäre nett ... oder gibts schon so ein Tutorial wo alle Schritte drin stehhen ?( ?(
    EDIT: ^^ ehm was heißt da blockahead ? sonst steig ich fast durch eigentlich aber garnicht
  • Eine Anleitung wofür? Wie man sie spielt, entwickelt, was man beachten muss, oder was ein Jump&Run überhaupt ist?
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Ich fände es gut wenn man links und rechts gleichzeitig drückt, der player nicht stehen bleibt, sondern zur zuletzgedrückten richtung geht, oder eben einfach nach rechts.
    Und Außerdem wären Schrägen echt super :) gibt bestimmt ne möglichkeit das ohne bugs zu programmieren
  • Ich hab ein Kleines Problem was ich nicht verstehe ...

    GML-Quellcode

    1. // --- >< Umdrehen >< ---Player1
    2. if (place_meeting(x,y+speed,obj_blocks) or
    3. place_meeting(x,y+speed,obj_checkpoint)) {
    4. speed = -speed;
    5. }
    6. // --- |< Spieler mitnehmen/wegdrücken >| ---
    7. // und Umdrehen falls Block im Weg
    8. // - Mitnehmen (nach unten) -
    9. if (speed > 0) && (place_meeting(x,y-speed,obj_player)) with (obj_player) {
    10. y += other.speed;
    11. if (keyboard_check(vk_left)) ^^ (keyboard_check(vk_right))
    12. {sprite_index = spr_player_walk;} else {sprite_index = spr_player_stand;}
    13. }
    14. // - Wegdrücken (nach oben/von unten) -
    15. if (place_meeting(x,y+speed,obj_player)) {
    16. with (obj_player) if (place_meeting(x,y+other.speed+vspeed,obj_blocks))
    17. {global.blockahead = 1} else {global.blockahead = 0;}
    18. if (global.blockahead) {speed = -speed;}
    19. else {obj_player.y += speed;}
    20. }
    21. ////////////////////////////////////////
    22. ////////////////////////////////////////
    23. // --- >< Umdrehen >< --- Player2
    24. if (place_meeting(x,y+speed,obj_blocks) or
    25. place_meeting(x,y+speed,obj_checkpoint)) {
    26. speed = -speed;
    27. }
    28. // --- |< Spieler mitnehmen/wegdrücken >| ---
    29. // und Umdrehen falls Block im Weg
    30. // - Mitnehmen (nach unten) -
    31. if (speed > 0) && (place_meeting(x,y-speed,obj_player2)) with (obj_player2) {
    32. y += other.speed;
    33. if (keyboard_check(vk_left)) ^^ (keyboard_check(vk_right))
    34. {sprite_index = spr_player_walk;} else {sprite_index = spr_player_stand;}
    35. }
    36. // - Wegdrücken (nach oben/von unten) -
    37. if (place_meeting(x,y+speed,obj_player2)) {
    38. with (obj_player2) if (place_meeting(x,y+other.speed+vspeed,obj_blocks))
    39. {global.blockahead = 1} else {global.blockahead = 0;}
    40. if (global.blockahead) {speed = -speed;}
    41. else {obj_player2.y += speed;}
    42. }
    43. ////////////////////////////////////////////
    44. ///////////////////////////////////////////
    45. // --- >< Umdrehen >< --- Player3
    46. if (place_meeting(x,y+speed,obj_blocks) or
    47. place_meeting(x,y+speed,obj_checkpoint)) {
    48. speed = -speed;
    49. }
    50. // --- |< Spieler mitnehmen/wegdrücken >| ---
    51. // und Umdrehen falls Block im Weg
    52. // - Mitnehmen (nach unten) -
    53. if (speed > 0) && (place_meeting(x,y-speed,obj_player3)) with (obj_player3) {
    54. y += other.speed;
    55. if (keyboard_check(vk_left)) ^^ (keyboard_check(vk_right))
    56. {sprite_index = spr_player_walk;} else {sprite_index = spr_player_stand;}
    57. }
    58. // - Wegdrücken (nach oben/von unten) -
    59. if (place_meeting(x,y+speed,obj_player3)) {
    60. with (obj_player3) if (place_meeting(x,y+other.speed+vspeed,obj_blocks))
    61. {global.blockahead = 1} else {global.blockahead = 0;}
    62. if (global.blockahead) {speed = -speed;}
    63. else {obj_player3.y += speed;}
    64. }
    65. ////////////////////////////////////////
    66. ////////////////////////////////////////
    Alles anzeigen


    Also dieser Code für das Object aus deinem Example :"obj_platform_ver48_16"
    Funktioniert nicht bei 3 Spielern aber nur bei einem Wieso woran liegt das Weiß das einer?^^
    :saint:

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

  • Erstmal, der Code baucht nur einmal ausgeführt werden und hat nichts mit den Spielern zu tun:

    GML-Quellcode

    1. if (place_meeting(x,y+speed,obj_blocks) or
    2. place_meeting(x,y+speed,obj_checkpoint)) {
    3. speed = -speed;
    4. }

    Das einzige, was mir auffällt, ist diese Zeile:

    GML-Quellcode

    1. if (keyboard_check(vk_left)) ^^ (keyboard_check(vk_right))
    Das sollte man dann schon durch die entsprechenden Kontrollen ersetzten.
    Ansonsten bin ich ratlos, was genau funktioniert denn nicht? Alles?
  • copyboy schrieb:

    Das einzige, was mir auffällt, ist diese Zeile:

    GML-Quellcode

    1. if (keyboard_check(vk_left)) ^^ (keyboard_check(vk_right))

    Naja das hat ja eigentlich nur mit den Sprites zu tun..


    Ich hab nochmal den Code Überarbeitet. (Übersichtlichter)

    start:

    GML-Quellcode

    1. if (place_meeting(x,y+speed,obj_blocks) or
    2. place_meeting(x,y+speed,obj_checkpoint)) {
    3. speed = -speed;
    4. }


    player1:

    GML-Quellcode

    1. //Player1
    2. // --- |< Spieler mitnehmen/wegdrücken >| ---
    3. // und Umdrehen falls Block im Weg
    4. // - Mitnehmen (nach unten) -
    5. if (speed > 0) && (place_meeting(x,y-speed,obj_player)) with (obj_player) {
    6. y += other.speed;
    7. }
    8. // - Wegdrücken (nach oben/von unten) -
    9. if (place_meeting(x,y+speed,obj_player)) {
    10. with (obj_player) if (place_meeting(x,y+other.speed+vspeed,obj_blocks))
    11. {global.blockahead = 1} else {global.blockahead = 0;}
    12. if (global.blockahead) {speed = -speed;}
    13. else {obj_player.y += speed;}
    14. }
    Alles anzeigen


    player2:

    GML-Quellcode

    1. //Player2
    2. // --- |< Spieler mitnehmen/wegdrücken >| ---
    3. // und Umdrehen falls Block im Weg
    4. // - Mitnehmen (nach unten) -
    5. if (speed > 0) && (place_meeting(x,y-speed,obj_player2)) with (obj_player2) {
    6. y += other.speed;
    7. }
    8. // - Wegdrücken (nach oben/von unten) -
    9. if (place_meeting(x,y+speed,obj_player2)) {
    10. with (obj_player2) if (place_meeting(x,y+other.speed+vspeed,obj_blocks))
    11. {global.blockahead = 1} else {global.blockahead = 0;}
    12. if (global.blockahead) {speed = -speed;}
    13. else {obj_player2.y += speed;}
    14. }
    Alles anzeigen


    player3:

    GML-Quellcode

    1. //Player3
    2. // --- |< Spieler mitnehmen/wegdrücken >| ---
    3. // und Umdrehen falls Block im Weg
    4. // - Mitnehmen (nach unten) -
    5. if (speed > 0) && (place_meeting(x,y-speed,obj_player3)) with (obj_player3) {
    6. y += other.speed;
    7. }
    8. // - Wegdrücken (nach oben/von unten) -
    9. if (place_meeting(x,y+speed,obj_player3)) {
    10. with (obj_player3) if (place_meeting(x,y+other.speed+vspeed,obj_blocks))
    11. {global.blockahead = 1} else {global.blockahead = 0;}
    12. if (global.blockahead) {speed = -speed;}
    13. else {obj_player3.y += speed;}
    14. }
    Alles anzeigen


    Naja nur Player1 kann mit den Platformen fahren , Player2 Player3 dagegen nicht da wird die Platform nur irgend wie nach unten gedrückt.
    :saint: