Kleiner Aufzug

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

  • Kleiner Aufzug

    Hallöö..
    Ich habe ein kleines Problem mit einem aufzug... ich habe ein Jump and Run Game gemacht in dem es einen Hin und her fahrenden Aufzug gibt...
    Ich habe einen Vordergrund und einen Hintergrund dieses Aufzuges und eine / einen Mask.
    Jetzt will ich den Vordergrund und den Hintergrund kombinieren und habe gedacht das ich 2 objekte mache. (sozusagen HardCoreSripten)



    1. Das erste hat die Aufzug Mask, im CREATE event create das ding in neues Objekt (das 2te) und Das Vorderteil mit depth = -10 ( und natürlich ein bewegungssript ) ...
    2. Das zweite objekt soll im STEP event immer an die X und Y position springen und hat einen depth wert von 10 (oder so)...

    Es funktioniert zwar aber leider hab ich 2 Probleme...

    -Problem 1... Das Aufzug hinterteil (*g*) springt immer ein stückchen zu langsam hinter dem vorderteil (*nochmalg*) her... also, wenn der aufzug schneller als 1 x oder y bewegt dann... naja... waklt das ganz schön!...

    -Problem 2... Ich kann nur einen Aufzug in einem Level Bauen, da alle hinterteille zu einem aufzug vorderteil springen...

    Nun die frage...

    Hätte einer von euch vlt. ne bessere umsetzung? O_o ich stehe nämlich kurz vorm verzweifeln...


    thx schon mal im vorraus

    ______________
    XDevil
  • Oh man. Was verstehst du eigentlich unter "Hardcore scripten". Du hast dir wohl zuviel hardcore...bevor du das geschrieben hast... wie kindisch muss man sein um so etwas zu schreiben?

    Problem 1: Draw es noch einmal.

    Problem 2: Dann mach 2 verschiedene Objektgruppen. (Also kopiere den Aufzug einfach).

    Bitte benutze das nächste mal dein Gehirn. Danke!
    -ghost
  • normalerweise drawt der gamemaker jeden step alles neu. mit

    GML-Quellcode

    1. screen_refresh()
    kannstes schon vorzeitig machen. aber wahrscheinlich liegt das problem daran, das das script vom "nachzügler" zu früh ausgeführt wird. mach das script einfach mal bei "end step"

    edit: ein bisschen zu spät


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

  • omg... nochmal für das liebe kleine ghostilein...

    (sozusagen HardCoreSripten)


    hat mal jemand zu mir geasgt weil ich früher / heute scheinbar immer noch etwas naja... ***** sripte... wenn man(n/du) das so nennen kann(/st). Und wenn du meinst. Du bist auch lustig.. was soll ich den Drawen???

    Draw das ganze so, wie du es bewegst.


    WAS? wie es sich bewegt? wo lebst du? Düsseldorf? egel... jedenfalls kann ich damit nichts anfangen...

    BiTtE drück dich mal so aus.. das ein... naja, anfänger das auch versteht... thx... :O

    :D :evil: :D :D :D :P
  • Setze nur das Vordergrundobjekt im Room Editor. In das Create Event des Vordergrundobjektes erstellst du dann dein Hintergrundobjekt, etwas so:

    GML-Quellcode

    1. blub=instance_create(x,y,hintergrundobjekt);
    2. blub.target=id;


    und im End Step Event des Hintergrundobjekts (das wird erst nach allen Bewegungen ausgeführt, aber noch vor dem Draw Event):

    GML-Quellcode

    1. x=target.x;
    2. y=target.y;
    Einige meiner Spiele:
  • Ich denke, 2 Objekte sind schon die einfachste Variante. Du musst ja nur das Vordergrundobjekt im Editor setzen, der Rest geht dann ja automatisch, wenn du meinen Vorschlag befolgst. Und du kannst dann auch mehrere dieser Aufzüge in deinem Room platzieren, ohne dass die Hintergründe alle zum ersten Aufzug springen.
    Einige meiner Spiele:
  • Target - (eng.) Ziel.
    Ist ein selbst gewählter Name für den Pointer welcher die Instance-ID der Instanz beinhaltet, an welches sich die eigentliche Aufzugs-Instanz zu orientieren hat.

    Noch etwas: Wenn du einzelne Begriffe nicht verstehst würde ich dich bitten in Zukunft erstmal in der Hilfe nachzusehen (oder in der SuFu, oder einfach zu googlen).
    Oftmals reicht das schon aus, um deine Frage hinreichend zu beantworten.
    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
  • target und blub sind zwei lokale Variablen, die ich selbst erfunden habe. Die kannst du natürlich auch anders nennen. blub speichert die neu erstellte Instanz, damit man ihr eine Referenz auf die eigene Instanz (id) mitgeben kann. target speichert dann also die Referenz auf die Instanz, von der es erzeugt wurde. Und weil das Hintergrundobjekt dann weiß, von wem es erzeugt wurde, springt es auch auf dessen Koordinaten (target.x, target.y) anstatt auf die Koordinaten der ersten Aufzuginstanz.

    PS.: Wenn du das :no: Smily benutzt, denke ich, dass du verärgert bist. Ich meine aber, dir keinen Anlass zur Verärgerung gegeben zu haben, vielmehr habe ich versucht, dir bei deinem Problem zu helfen.
    Themen können nur von Moderatoren geclosed werden.
    Einige meiner Spiele:
  • Juhuuu... funtzt!

    P.S.

    DANKE!

    ________
    XDevil

    EDIT:

    ...

    Tut mit leid mit dem " :no: " (war nicht böse gemeint :P ! )

    Habe noch ein problem mit dem Aufzug...

    Ich habe einen Charakter gebastelt mit dem... *einfüg ...code

    GML-Quellcode

    1. Information about object: Elite
    2. Sprite: el_right
    3. Solid: false
    4. Visible: true
    5. Depth: 0
    6. Persistent: false
    7. Parent: <no parent>
    8. Mask: el_mask
    9. Create Event:
    10. execute code:
    11. move = el_right
    12. live = 400
    13. maxlive = 400
    14. bullets = 30
    15. Step Event:
    16. if relative position (0,1) is not collision free for Only solid objects
    17. execute code:
    18. if
    19. sprite_index = el_jump_right
    20. sprite_index = el_right
    21. if
    22. sprite_index = el_jump_left
    23. sprite_index = el_left
    24. if
    25. keyboard_check(vk_right) && position_empty(x = x+2,y = +0)
    26. {
    27. sprite_index = el_walk_right
    28. x += 2
    29. move = el_right
    30. }
    31. if
    32. keyboard_check(vk_left) && position_empty(x = x-2,y = +0)
    33. {
    34. sprite_index = el_walk_left
    35. x -= 2
    36. move = el_left
    37. }
    38. if
    39. keyboard_check(vk_up)
    40. {
    41. vspeed = -7
    42. }
    43. image_speed = 0.5
    44. if relative position (0,1) is collision free for Only solid objects
    45. execute code:
    46. if
    47. keyboard_check(vk_right) && position_empty(x = x+2,y = +0)
    48. {
    49. x += 2
    50. move = el_right
    51. }
    52. if
    53. keyboard_check(vk_left) && position_empty(x = x-2,y = +0)
    54. {
    55. x -= 2
    56. move = el_left
    57. }
    58. if
    59. move = el_right
    60. sprite_index = el_jump_right
    61. if
    62. move = el_left
    63. sprite_index = el_jump_left
    64. if relative position (0,1) is collision free for Only solid objects
    65. set the gravity to 0.5 in direction 270
    66. else
    67. set the gravity to 0 in direction 270
    68. if vspeed is larger than 7
    69. set variable vspeed to 7
    70. Collision Event with object wall:
    71. move in direction 270 at most 7 till a contact with solid objects
    72. set the vertical speed to 0
    73. Collision Event with object Lift1:
    74. move in direction 90 at most 1 till a contact with solid objects
    75. if vspeed is equal to -2
    76. set the vertical speed to -2
    77. if vspeed is equal to 2
    78. set the vertical speed to 2
    79. Key Release Event for <any key> Key:
    80. if relative position (0,1) is not collision free for Only solid objects
    81. execute code:
    82. if
    83. sprite_index = el_jump_right
    84. sprite_index = move
    85. if
    86. sprite_index = el_jump_left
    87. sprite_index = move
    88. if
    89. move = el_right
    90. sprite_index = move
    91. if
    92. move = el_left
    93. sprite_index = move
    Alles anzeigen


    soo.. habe 1-2 fragen

    -1. Wie bekomme ich im gml sript das mit dem if colision free X+2 (also rechts neben mir 2Pixel)? bei mir steht...

    GML-Quellcode

    1. ...
    2. if
    3. keyboard_check(vk_left) && position_empty(x = x-2,y = +0)
    4. {
    5. ...


    Aber der meint damit die Position, 2Pixel rechts neben dem linkem Rand... ?( ... ich dachte vlt. an

    GML-Quellcode

    1. x -= 2


    aber dann mekert Game Maker :O ...

    ne idee?

    und...

    -2... erkläre ich später...

    Jemand ne Idee??? (Vor allen an den Interceptordings war die frage gestellt!..^^.. )
    (aber auch an die anderen Game Maker...)

    ________
    XDevil

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von -=-XDevil-=- ()

  • Benutzer online 3

    3 Besucher