Probleme mit "bounce" im Zickzack an der Wand lang?

  • GM 8
  • Probleme mit "bounce" im Zickzack an der Wand lang?

    Hallo Forum


    Probleme mit "bounce" im Zickzack an der Wand lang? ;(


    Bin seit ein paar Tagen mit dem GameMaker8.1 am üben, mir
    mein Spielklassiker aus dem Jahre 85 wieder zum Leben zu erwecken. Es handel
    sich um das Spiel Diamond Fever von Ronald Mayer. Habe ein Problem bei der
    Umsetzung. Im Spiel wird "ein Ball von unten an gestartet und bewegt sich in
    vertikaler Richtung bis er den oberen Rand berührt hat. Danach prallt dieser
    vom oberen Rand wieder ab und bewegt sich nun wieder vertikal nach unten wo er wieder
    am unteren Rand abprallt usw.


    Nach betätigen der Pfeiltaste "links"
    bewegt sich nun der Ball, wenn er von unten kommt um 45° nach links oben. Wenn
    der Ball von oben kommt bewegt er sich um 45° nach links unten. Das gleiche mit
    der rechten Pfeiltaste. 45° nach rechts oben, wenn er von unten kommt,
    und 45° nach rechts unten, wenn er von
    oben kommt.


    Habe im Step folgenden Code drin:


    {


    if
    (keyboard_check(vk_left)) x -= 5;


    if (keyboard_check(vk_right)) x += 5;


    }


    und im Obj.Wand
    rechts das bounce und reverse Horizontal.


    Bounce :
    Applies to Objekt = Obj.Ball_Tuerkis


    precise: precisely


    against:
    solid objects


    Reverse Horizontal:
    Applies to Objekt = Obj.Ball_Tuerkis


    Nun zu meinem Problem. :heul:


    !!""Wie bekommt man es hin, dass der Ball, wenn ich
    die rechte Pfeiltaste gedrückt halte, und er den rechten Rand
    berührt, von diesem nun kurz (ca.
    5 Pixel) mit 45° nach links oben abprallt.
    Da ich ja die rechte Pfeiltaste noch gedrückt halte, sollte er dann solange mit
    45° nach rechts oben gegen die Wand prallen, bis ich die rechte
    Pfeiltaste wieder los lasse. Danach geht
    er wieder in seine vertikale Richtung!""



    Das heißt: Er geht nach oben aber im Zickzack an der Wand
    lang



    Hab schon alles Mögliche ausprobiert und versucht im Forum irgendwas
    in der Art zu finden, aber leider ohne Erfolg. Falls mir vielleicht jemand
    einen kleinen Tipp, oder noch besser den passenden Code Schnipsel sagen könnte,
    wäre echt super.


    Bedanke mich schon mal im Voraus. :thumbsup:


    mfg ALOC
  • Probleme mit "bounce" im Zickzack an der Wand lang?

    Hallo Aku_Ryou

    Erst mal danke für deine schnelle Antwort.
    ;)
    Leider hilft mir dieses Video nicht so wirklich weiter, da ich keinen direkten Vergleich zu meinem Problem sehe,
    und es mein Problem nicht löst.
    :rolleyes:

    Über alle anderen Vorschläge bin ich sehr Dankbar
    :thumbsup:

    mfg ALOC

  • Probleme mit "bounce" im Zickzack an der Wand lang?

    Hallo Forum


    Habe für alle die vielleicht meine Frage nicht richtig verstanden haben mal den Link
    zum Ansehen des Spieles ;)
    http://www.google.de/imgres?q=diamond+fever&hl=de&sa=X&tbo=d&biw=1280&bih=963&tbm=isch&tbnid=tzq4Hs0gwccCwM:&imgrefurl=http://

    www.tecwa.de/kultpack/info_c64…pIov7mDrBM&imgurl=http://
    tecwa.de/kultpack/info_c64game…i=7FX5UPOaM8nKsgbag4GYAw&
    zoom=1&iact=hc&vpx=12&vpy=550&dur=640&hovh=168&hovw=246&tx=77&ty=106&sig=116619386436734763743&page=2&tbnh=142&
    tbnw=190&start=34&ndsp=45&ved=1t:429,r:34,s:0,i:190


    Wie kann man sowas mit dem GameMaker erstellen.
    Über nützliche Tipps würde ich mich sehr freuen. 8o


    mfg ALOC
  • Riesen Edit: Ich hab alles nochmal rausgelöscht und hier also meine endgültige Antwort auf das Probelem^^

    Also du brauchst: obj_wall (für die Wände links und rechts), obj_wall_oben und obj_wall unten(, sowie obj_ball).

    Alles findet im obj_ball statt.

    Create Event:

    GML-Quellcode

    1. richtung = 0;
    2. speed = 2;
    3. direction = 270;


    Step Event:

    GML-Quellcode

    1. if richtung = 1 //rauf
    2. {
    3. if collision_point(x-16,y,obj_wall,1,1)
    4. {
    5. direction = 45
    6. }
    7. }
    8. if richtung = 0 //runter
    9. {
    10. if collision_point(x-16,y,obj_wall,1,1)
    11. {
    12. direction = 315
    13. }
    14. }
    15. if richtung = 1
    16. {
    17. if collision_point(x+16,y,obj_wall,1,1)
    18. {
    19. direction = 135
    20. }
    21. }
    22. if richtung = 0
    23. {
    24. if collision_point(x+16,y,obj_wall,1,1)
    25. {
    26. direction = 225
    27. }
    28. }
    Alles anzeigen


    keyboard <Links> Event:

    GML-Quellcode

    1. if not collision_point(x-32,y,obj_wall,1,1)//Abstand ab welchem wieder nach Links "geflogen wird" (zum bouncen)
    2. {
    3. if richtung = 1
    4. {
    5. direction = 135
    6. }
    7. if richtung = 0
    8. {
    9. direction = 225
    10. }
    11. }
    Alles anzeigen


    keyboard <Rechts> Event:

    GML-Quellcode

    1. if not collision_point(x+32,y,obj_wall,1,1)
    2. {
    3. if richtung = 1
    4. {
    5. direction = 45
    6. }
    7. if richtung = 0
    8. {
    9. direction = 315
    10. }
    11. }
    Alles anzeigen


    Collision <obj_wall_oben> Event:

    GML-Quellcode

    1. richtung = 0
    2. if direction = 45
    3. {
    4. direction = 315
    5. }
    6. if direction = 135
    7. {
    8. direction = 225
    9. }
    10. if direction = 90
    11. {
    12. direction = 270
    13. }
    Alles anzeigen


    Collision <obj_wall_unten> Event:

    GML-Quellcode

    1. richtung = 1
    2. if direction = 315
    3. {
    4. direction = 45
    5. }
    6. if direction = 225
    7. {
    8. direction = 135
    9. }
    10. if direction = 270
    11. {
    12. direction = 90
    13. }
    Alles anzeigen


    So...im Anhang geb ich dir das Example... wenns dass nicht ist, dann weiß ich auch nicht weiter^^
    Dateien
    • hilfe.rar

      (11,01 kB, 131 mal heruntergeladen, zuletzt: )

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Aku_Ryou ()

  • Probleme mit "bounce" im Zickzack an der Wand lang?

    Hallo Aku Ryou





    Hut ab.


    Super, Super und nochmals Super. :thumbsup:






    Problem zu 99,9% gelöst. :rolleyes:


    bin jetzt noch dabei es ein wenig abzuändern, da wenn ich die Tasten wieder
    los lasse, der Ball ja wieder in seiner vertikalen Richtung weiterfliegen soll.



    Bedanke mich
    nochmal für diesen ausführlichen und gut beschriebenen Code teil. Bis zum
    nächsten Problem.
    8o









    Ps: ach, Ihr müsst den zweiten
    Link
    www.tecwa.de/kultpack/info_c64games/d/00…M8nKsgbag4GYAw&
    nehmen. Der Link bringt
    euch auf eine Startseite. Ihr müsstet dann erst auf die Startseite klicken,
    nach dem Ihr auf der Startseite seit dann auf der Auswahl auf "D" klicken,
    dann ist es auch schon rechts zu sehen. Ein Mal das Bild anklicken und es wird
    eine kleine Simulation gestartet. Es gibt dort sehr viele Spiele zu sehen.

    Viel Spaß. :D





    mfg


    ALOC