Unendliches Level

  • GM 8

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

  • du nutzt beispielsweise für jede Platform ein objekt obj_platform

    du benötigst außerdem einen obj_platform_controller, der einmalig, im Create Event die Objekte erstellt:

    GML-Quellcode

    1. //generiere 8 platformen
    2. for(i=0; i<8; i=+1){
    3. /*bei jedem Schleifendurchlauf erstelle Variablen mit zufälligen Werten (random) und runde diese auf ganze Zahlen (round) innerhalb der Raumdimension //(room_width und room_height)*/
    4. x_create=random(round(room_width));
    5. y_create=random(round(room_height));
    6. /*Wenn an dieser Stelle kein obj_platform Objekt ist*/
    7. if(!place_meeting(x_create, y_create, obj_platform){
    8. /*dann erstelle eine Platform*/
    9. instance_create(x_create, y_create, obj_platform);
    10. }
    11. }
    Alles anzeigen


    und im Step Event der Platform:

    GML-Quellcode

    1. /*Geschwindigkeit des Objekts*/
    2. yourspeed = 2;
    3. y = +yourspeed;
    4. /*wenn die Y-Position größer als die Raumhöhe ist, zerstöre das Objekt*/
    5. if(y > room_height){
    6. instance_destroy();
    7. }


    und dann im destroy event ein Objekt über dem oberen Bildschirmrand erstellen:

    GML-Quellcode

    1. x_create = random(round(room_width));
    2. size = 32; /*Größe des Objekts in px*/
    3. instance_create(x_create, room_height - room_height - size, obj_platform);



    mal als grober Denkanstoß. Ist natürlich nicht getestet ;)
  • Dafür brauchst du kein example ^^

    Es gibt viele verschiedene wege, wie du das machst, ich sag mal einen kurz.
    Du hast ein Objekt, dass die Weltgeneration steuert. Dies setzt du in deinen Raum, wo die Welt generiert werden soll.
    Angenommen es sei DoodleJump: Du hast ja verschiedene Objekte, das sind die Bretter auf die man springt. Jetzt machst du einfach einen Loop in deinem Controllobjekt. Am besten mit Alarmevents. Und immer wenn der Allarm runter geht, erstellst du ein Objekt an einer Stelle. Wie schon domis4 geschrieben hat, kannst du den Erstellpunkt gut mit room_height, room_widht lösen. Room_height ist die Raumhöhe, Room_widht die Raumbreite. Also würde z.B. bei instance_create(room_height/2,room_widht/2,obj_brett) das obj_brett in der Mitte von deinem Raum erstellt werden. Diese Variablen kannst du dann ja beliebig ändern etc.
    Husi012 hat mich nicht mehr in seiner Signatur, ich bin trotzdem noch fame.
  • Die Grundidee hierbei (also bei Doodlejump) ist, alle paar Sekunden eine Plattform zu erstellen,
    die auf einer zufälligen Position auf der X-Achse steht, und mit einer konstanten Geschwindigkeit stetig nach unten geht.
    Sobald die Plattform aus dem Raum ist, wird sie wieder zerstört.

    Wird diese Aktion andauernd wiederholt, entsteht ein "Unendlichkeits-Effekt".
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)
  • ich habe mir neulich privat nen flappy bird klon gecodet (in Java, aber des ist ja eigentlich egal).
    da habe ich 2 röhren im raum, die immer nach links wandern und dann, wenn x<0-bitmapbreite dann x=xauflösung+bitmapbreite.
    in GML währe das

    GML-Quellcode

    1. //röhre step Event
    2. x-=2
    3. if x<0-sprite_get_width(sprite_index)
    4. x=room_width+sprite_get_width(sprite_index)
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D