Bei Autorennen mehrere Runden einstellen

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

  • Erstmal Willkommen bei gm-d!
    Dazu brauchst du Variablen... Damit solltest du dich zuerst vertraut machen.
    Im Create Event von obj_auto (Name geändert)
    name: runde value: 0 Nicht relativ!
    Im Collisons Event von der Ziellinie im Objekt obj_auto (Name geändert)
    rund value: 1 Relativ: ja!
    im Step-Event von obj_auto (Name geändert)
    variable: runde value: 5

    // Hier was passieren soll wenn 5 Runden absolviert wurden


    mfg xxskxx
    -
  • @xxskxx:
    Wenn ich das richtig interpretiere, wird nach deiner Methode die Runde schon beim ersten durchfahren enden, da der Collisions Event vom Auto mit der Ziellinie knadenlos den Wert runde auf 5 setzt. ;)
    Und genauso schlecht ist es, wenn das Auto rückwärts fahren kann, denn dann muß man nur in die falsche Richtung fahren um auch das Rennen zu beenden.
  • maxda schrieb:

    Aber als GML-Fortgeschrittener (siehe Profil) sollte man doch sowas können!
    Solche Beiträge sind unnötig.
    Die helfen bei dem Problem auch nicht und sind meiner Meinung nach eher Spam.

    Zu deinem Problem.
    Erstelle ein Object namens : obj_Ziel
    Im Create Event:

    GML-Quellcode

    1. round=0 // Die Runden Anzahl //
    2. aktiv=true // Damit keine ständige Collision entsteht //


    Im Collisions-Event mit dem obj_Auto:

    GML-Quellcode

    1. round+=1 // Runde +1 erhöhen //
    2. aktiv=false // Collision unterbrechen //
    3. alarm[0]=50 // Timer starten für Collision aktivierung //


    Alarm[0]Event

    GML-Quellcode

    1. aktiv=true // Collision wieder aktivieren //

    Im Step-Event:

    GML-Quellcode

    1. If round=3 // wenn die Rundenanzahl 3 ist, Spiel beenden //
    2. end_game()


    (Namen ersetzten, end_game() durch eine andere Aktion ersetzten)
    Nicht die beste Lösung, hab aber jetzt auch keinen klaren Kopf/Zeit mehr drüber nach zu denken.
    Hab selbst mal ein Rennspiel gemacht und hatte eine bessere Lösung, aber ich habe das Spiel nicht mehr.

    // Bei dieser Lösung kann man schummeln, aber schonmal ein Anfang //
  • Prustel schrieb:



    maxda schrieb:

    Aber als GML-Fortgeschrittener (siehe Profil) sollte man doch sowas können!
    Solche Beiträge sind unnötig.
    Die helfen bei dem Problem auch nicht und sind meiner Meinung nach eher Spam.

    Zu deinem Problem.
    Erstelle ein Object namens : obj_Ziel
    Im Create Event:

    GML-Quellcode

    1. round=0 // Die Runden Anzahl //
    2. aktiv=true // Damit keine ständige Collision entsteht //



    Im Collisions-Event mit dem obj_Auto:

    GML-Quellcode

    1. round+=1 // Runde +1 erhöhen //
    2. aktiv=false // Collision unterbrechen //
    3. alarm[0]=50 // Timer starten für Collision aktivierung //


    Alarm[0]Event

    GML-Quellcode

    1. aktiv=true // Collision wieder aktivieren //

    Im Step-Event:

    GML-Quellcode

    1. If round=3 // wenn die Rundenanzahl 3 ist, Spiel beenden //
    2. end_game()


    (Namen ersetzten, end_game() durch eine andere Aktion ersetzten)
    Nicht die beste Lösung, hab aber jetzt auch keinen klaren Kopf/Zeit mehr drüber nach zu denken.
    Hab selbst mal ein Rennspiel gemacht und hatte eine bessere Lösung, aber ich habe das Spiel nicht mehr.

    // Bei dieser Lösung kann man schummeln, aber schonmal ein Anfang //
    bei mir kommt das :
    FATAL ERROR in
    action number 1
    of Step Event
    for object obj_ziel:

    COMPILATION ERROR in code action
    Error in code at line 2:
    next_level()

    at position 2: Unknown function or script: next_level
  • Schön, dass der Fehlercode den du gepostet hast nicht in Prustels Skript zu finden ist.

    1. Ersetze den Namen der Variable "round" mit etwas anderem.
    2. Hast du anscheinend kein Skript, dass "next_level()" heißt. Um in den nächsten Raum zu gelangen benutze "room_goto_next();".

    Gewöhn dir mal bitte an, die Hilfezu benutzen. Vielen Dank!
  • ghostrider schrieb:

    Schön, dass der Fehlercode den du gepostet hast nicht in Prustels Skript zu finden ist.

    1. Ersetze den Namen der Variable "round" mit etwas anderem.
    2. Hast du anscheinend kein Skript, dass "next_level()" heißt. Um in den nächsten Raum zu gelangen benutze "room_goto_next();".

    Gewöhn dir mal bitte an, die Hilfezu benutzen. Vielen Dank!
    was soll ich den für round nehmen
  • gamesfreak schrieb:

    was soll ich den für round nehmen
    Du kannst da echt alles für nehmen. Von "Affe" über "Depp", "Rollstuhl" und "Schweinshaxe" bis hin zu "Idiot". Auch näher liegende Worte wie "runde" oder "umkreisung" und dergleichen gehen.

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

  • copyboy schrieb:

    Hier hab ich ein kleines Example für dich, welches du selbst einbauen musst.
    Aber wir können dir nicht alles auf dem Silbertablett servieren, wie ich das grade mache ;)
    danke nun muss ich nur noch etwas herausfinden
    "Wie man bei Runde 5 ins nächste Level komme"
    (müsst nicht umbedingt antworten versuche es selber )
  • Noch 'n Tipp für Runden - nicht durch rückwärtsfahren

    Inspiriert von TrackMania würde ich dir den Einsatz eines Checkpoints, ob nun sichtbar oder nicht, am anderen Ende der Strecke raten.

    Dann könntest du auch das Collisionsevent ganz normal nutzen.

    In etwa folgendermaßen (Ich hab jetzt nicht Symbole benutzt, aber ich denke, du verstehst die Idee trotzdem):

    Auto_create
    var [Runde] = 0
    var [check] = 0
    var [Endrund] = 5

    Auto <col> Ziel
    -if var [Runde] = var [check]
    -->var [Runde] =+1 (relativ)
    if var [Runde] = var [Endrund]
    --> Go_to_next_room

    Auto <col> Check
    -if var [check] = var [Runde]+1
    -->var [check] =+1 (relativ)
    Fa & Kre für alle!__________________________________________________________________________________________________________*42*