Zeit mitlaufen lassen. Mario Ähnliches Spiel

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

  • Zeig mal den ganzen Code. Ich seh jetzt in meinem kein Fehler. Kann sein das ich einen Knick in der Pupille hab aber es kann auch gut sein, dass der Code z.B. darüber den Fehler verursacht

    Edit: Oh das hätte true sein müssen XD
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe

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

  • Quellcode

    1. ​if instance_number(steuer) > 1
    2. instance_destroy()
    3. else
    4. {
    5. global.geld = 0
    6. global.item1 = 2
    7. }
    8. minute = 0
    9. sekunde = 0
    10. time = 0
    11. global.time = 0
    12. time_active = false
    Alles anzeigen


    aber der fehler war ein fehler von mir xD er nimmt das time_active = false an. Nur bringt es mir nix :( sobald ich auf das Tor komme stoppt er die zeit nicht und springt sofort ins zweite level und die uhr läuft genau da weiter wo sie im letzten level schon war.
  • EDIT: ich ahabe sehr langsam geschrieben udn eure beiträge verpasst^^, also dann msust du einfach nur alles wieder auf 0 stellen wenn du das objekt berühst, unter umständen falls du die zeit aber noch anzeigen lassen willst, dann lässt du entweder nur den timer stoppen oder speicherst die momentane zeit in eine andere variable um.

    Spoiler anzeigen
    Ich sehe ein Muster ;)

    du musst jede Variable die du verwenden willst vorher irgendwo initialisieren, meistens ist das im create event vom object das die variable verwenden möchte. Wenn du eine variable nur für ein skript oder nur für einen step lang brauchst zB in einer Schleife, dann brauchst du die variable nur an der stelle entweder mit einem wert oder leer initialisieren. Die verfällt am Ende der Schleife automatisch wieder.

    GML-Quellcode

    1. {
    2. var time;
    3. //oder
    4. time = 0;
    5. }

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)

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

  • bräuchte mal dringend Hilfe :(

    Habe in meinem Spiel ein Powerschild das man per klick auf die Leertaste um den Charakter bekommt und unbesiegbar ist. Hat bis jetzt immer funktioniert.
    Im Create Event gibt es dafür eine Variabel. global.item1. Das habe ich jetzt geändert in global.schutzschild. Habe es natürlich überall geändert. (item1 zu schutzschild)

    Doch seid dem ich das geändert habe kommt beim Sterben folgender Fehler.

    Quellcode

    1. ___________________________________________
    2. ############################################################################################
    3. FATAL ERROR in
    4. action number 1
    5. of Step Event2
    6. for object powerschild:
    7. Unable to find any instance for object index '0' name 'spieler'
    8. at gml_Object_powerschild_StepEndEvent_1 (line 1) - x = spieler.x
    9. ############################################################################################



    NACHTRAG1:
    Der Fehler kommt nur wenn ich mit aktivem Schutzschild sterbe durch zb. Fall in die Lava.

    NACHTRAG2:
    FEHLER Behoben! :)
    Habe vergessen in den Code einzubauen das der Spieler Sterben muss wenn er trotz Schutzschild ins die Lava fällt :)


    Bitte um Hilfe.

    Danke

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von refreak ()

  • Du kannst mit STRG + SHIFT + F (Suchfunktion) mal schauen, ob wirklich nicht mehr die Variable "global.item1" im Projekt vorhanden ist.
    Vorausgesetzt du hast diese Variable an jeder Stelle durch die neue ersetzt, kannst du somit ausschließen, dass es daran liegt.

    Was dann den Errorcode angeht: Er findet ja dein Spielerobjekt nicht,
    hast du es schon versucht mit einer Abfrage davor?

    GML-Quellcode

    1. if instance_exists(spieler)
    2. {
    3. //code
    4. }


    Außerdem würde ich dir raten für die Zukunft, dass du Objekte immer mit einem Präfix versiehst, z.B: obj_spieler,
    und Sprites dann konsequenterweise mit spr_spieler.
    Sonst kennt sich der GM irgendwann nicht mehr aus, und für die Übersichtlichkeit ist es auch besser. :)

    edit:

    refreak schrieb:

    NACHTRAG2:FEHLER Behoben!

    Ah ok, na umso besser.
  • Das heißt, das das Schild im Step Event nach dem Spielerobject sucht aber nciht mehr finden kann, weil ja der Spieler scion zerstört wurde, es muss also entweder auch das powerschild zerstört werden wenn der Spieler stirbt oder du setzt noch die abfrage hinein.

    GML-Quellcode

    1. if instance_exists(spieler)
    2. {
    3. x = spieler.x
    4. //etc
    5. }

    dann führt er den code nur aus solange es den spieler gibt.

    EDIT: zu langsam ;P und hör auf den Tipp von RLP die Präfixe sind sehr praktisch :)

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • RLP schrieb:

    Du kannst mit STRG + SHIFT + F (Suchfunktion) mal schauen, ob wirklich nicht mehr die Variable "global.item1" im Projekt vorhanden ist.
    Vorausgesetzt du hast diese Variable an jeder Stelle durch die neue ersetzt, kannst du somit ausschließen, dass es daran liegt.

    Was dann den Errorcode angeht: Er findet ja dein Spielerobjekt nicht,
    hast du es schon versucht mit einer Abfrage davor?

    GML-Quellcode

    1. if instance_exists(spieler)
    2. {
    3. //code
    4. }


    Außerdem würde ich dir raten für die Zukunft, dass du Objekte immer mit einem Präfix versiehst, z.B: obj_spieler,
    und Sprites dann konsequenterweise mit spr_spieler.
    Sonst kennt sich der GM irgendwann nicht mehr aus, und für die Übersichtlichkeit ist es auch besser. :)

    edit:

    refreak schrieb:

    NACHTRAG2:FEHLER Behoben!

    Ah ok, na umso besser.



    Danke für die leider etwas verspätete hilfe :D
    Bezüglich der Präfix... kann ich ja jetzt noch ändern oder? Brauch ja nur sämtliche namen abändern.
  • refreak schrieb:

    kann ich ja jetzt noch ändern oder? Brauch ja nur sämtliche namen abändern.

    Natürlich. Wenn du noch nicht so viele Objekte und andere Ressourcen hast ist das auch einigermaßen schnell erledigt,
    und erspart dir sicher im Laufe des Projektes einige Fragezeichen über dem Kopf bezüglich auftretender Probleme. ;)
  • neue Frage :) GELÖST (ich bin zu schnell mit fragen stellen xD )

    habe ein Objekt. Ein Blauer Schlüssel, der soll nirgendwo auftauchen. Doch sobald ich den eingesammelt habe soll die Sprite vom Schlüssel oben angezeigt werden. So wie ich das jetzt habe wird mir die Sprite dauerhaft dargestellt mit einer 0 da drüber und wenn ich den schlüssel einsammel wird aus der 0 eine 1.

    Quellcode

    1. draw_set_color(make_color_rgb(0,170,170))
    2. draw_set_font(normalfont)
    3. draw_text(view_xview+920,view_yview+10,+string(global.blauer_key))
    4. draw_sprite(key_blau,0,view_xview+920,view_yview+30)



    LÖSUNG:

    If Abfrage

    Quellcode

    1. ​draw_set_color(make_color_rgb(0,170,170))
    2. draw_set_font(normalfont)
    3. if global.blauer_key >= 1
    4. draw_sprite(key_blau,0,view_xview+920,view_yview+10)

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

  • Also wenn ich das richtig verstehe hast du da ein Unsichtbares Objekt (den Schlüssel), dass die Befehle bei Berührung ausführt?

    Dann setz visible = false und im stepevent setzt du visible = true sobald der Schlüssel eingesammelt wurde und ​global.blauer_key += 1
  • 3D2Y Bandicoot schrieb:

    Also wenn ich das richtig verstehe hast du da ein Unsichtbares Objekt (den Schlüssel), dass die Befehle bei Berührung ausführt?

    Dann setz visible = false und im stepevent setzt du visible = true sobald der Schlüssel eingesammelt wurde und ​global.blauer_key += 1


    Danke :) das klingt auch nach einer Guten Lösung.
    ich habe es wie oben geschrieben jetzt mit einer If abfrage gelöst.

    Quellcode

    1. ​draw_set_color(make_color_rgb(0,170,170))
    2. draw_set_font(normalfont)
    3. if global.blauer_key >= 1
    4. draw_sprite(key_blau,0,view_xview+920,view_yview+10)
  • DISCLAIMER : Folgendes Bezieht sich eher auf Seite1 dieses Threads und soll dich nur vor Unheil bewahren :
    (hab es geschrieben ohne die zweite Seite bemerkt zu haben, allerdings denke ich das es trotzdem helfende Anregung sein sollte)

    Ohne es böse zu meinen, wenn ich mir den Thread hier durchlese beschleicht mich das Gefühl, du solltest dir erstmal die Grundlagen des Programmierens zu Gemüte führen und auch richtig lesen was die Leute hier schreiben. Es bringt nichts wenn du einfach nur den Code der dir hier zur Verfügung gestellt wird per copy&paste bei dir einfügst, du solltest auch versuchen ihn zu verstehen. Woher ich das nehme? Du hast schon zwei mal einen variable_get error hier reingepostet, obwohl vorher extra beschrieben wurde, dass man Variablen erst deklarieren muss. Daraus schließe ich halt das du dir garnicht richtig gurchgelesen hast was du da kopierst, sonst wäre dir ja aufgefallen das du die Variable time_active noch nicht benutzt. Das schreibe ich jetzt nicht weil ich gerne Leute runtermache, sondern weil ich dir dabei helfen möchte einen häufigen Anfängerfehler zu vermeiden. Man sollte sich immer Zeit nehmen und das neue untersuchen und verstehen, sonst klaut man sich noch in einem Jahr aus Tutorials Code zusammen und lässt bei jedem kleinen Problem das Forum machen. Hier gab es schon den ein oder anderen den ich jetzt nicht mit Namen nennen werde, der eine, nunja, recht schlichte Lernkurve über einen sehr langen Zeitraum hatte, was ich mir nur durch obigen Lernfehler erklären kann. Davor will ich dich bloß bewahren, hoffe du siehst diese Kritik positiv wie sie gemeint ist.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • so das wird ja langsam hier zu einem Sammel Thread :D (an die Admins hoffe das ist ok so, oder soll ich für jede Frage ein neuen Thread auf machen?)

    Schlüssel wird jetzt korrekt dargestellt.

    Habe ein Tür_obj gebaut. Das steht auf Solid.

    Jetzt soll das Tür_obj wenn der Spieler den Schlüssel besitzt von Solid True auf Solid False wechseln und die Grafik der Tür von Geschlossen auf geöffnet wechseln. (Sprite 0 zu 1)

    Habe folgenden Code in das Tür Objekt gepackt unter End Step Event
    Step Event

    Quellcode

    1. ​image_index = 0


    Colisions event mit Spieler

    Quellcode

    1. ​if global.blauer_key >= 1
    2. solid = 0 and image_index = 1


    leider funktioniert das nicht so wie ich will. Jemand eine idee? :)
  • Wieso hast du denn da unten ein and stehen? Das würde man nur bei einer Abfrage benutzen (zB if 1 = 2 and 5=4) :D
    Ansonsten seh ich da gerade keinen Fehler.

    EDIT: im Create-Event sollte das stehen, ansonsten wird in jedem Step die Tür wieder geschlossen (Also wieder auf 0 gesetzt)

    GML-Quellcode

    1. image_speed = 0
    2. image_index = 0

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von 3D2Y Bandicoot ()

  • den image_index nicht jeden step setzen, sondern nur im create.
    Du solltest global.blauer_key eventuell in etwas wie global.has_key umbennenen und einen boolean draus machen, dann ist es eindeutiger.
    Ich würde dir empfehlen ein parent-objekt für türen zu erstellen ( par_door) das kann leer sein. dann bei deiner Tür gibst du bei parent par_door an
    Dann mach einfach ein collision event im Spieler mit par_door ( so kannst du alle türen die du hinzufügst öffnen)

    GML-Quellcode

    1. if (global.has_key = true) {
    2. other.solid = false;
    3. other.image_index = 1;
    4. }


    hauptproblem war es wohl das du image_index jeden step wieder auf 0 gesetzt hast.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • 3D2Y Bandicoot schrieb:

    Wieso hast du denn da unten ein and stehen? Das würde man nur bei einer Abfrage benutzen (zB if 1 = 2 and 5=4) :D
    Ansonsten seh ich da gerade keinen Fehler.

    EDIT: im Create-Event sollte stehen, ansonsten wird in jedem Step die Tür wieder geschlossen (Also wieder auf 0 gesetzt)

    GML-Quellcode

    1. image_speed = 0
    2. image_index = 0


    Achso ich dachte ich kann das auch dort nutzen das "and"
  • Rhazul schrieb:

    DISCLAIMER : Folgendes Bezieht sich eher auf Seite1 dieses Threads und soll dich nur vor Unheil bewahren :
    (hab es geschrieben ohne die zweite Seite bemerkt zu haben, allerdings denke ich das es trotzdem helfende Anregung sein sollte)

    Ohne es böse zu meinen, wenn ich mir den Thread hier durchlese beschleicht mich das Gefühl, du solltest dir erstmal die Grundlagen des Programmierens zu Gemüte führen und auch richtig lesen was die Leute hier schreiben. Es bringt nichts wenn du einfach nur den Code der dir hier zur Verfügung gestellt wird per copy&paste bei dir einfügst, du solltest auch versuchen ihn zu verstehen. Woher ich das nehme? Du hast schon zwei mal einen variable_get error hier reingepostet, obwohl vorher extra beschrieben wurde, dass man Variablen erst deklarieren muss. Daraus schließe ich halt das du dir garnicht richtig gurchgelesen hast was du da kopierst, sonst wäre dir ja aufgefallen das du die Variable time_active noch nicht benutzt. Das schreibe ich jetzt nicht weil ich gerne Leute runtermache, sondern weil ich dir dabei helfen möchte einen häufigen Anfängerfehler zu vermeiden. Man sollte sich immer Zeit nehmen und das neue untersuchen und verstehen, sonst klaut man sich noch in einem Jahr aus Tutorials Code zusammen und lässt bei jedem kleinen Problem das Forum machen. Hier gab es schon den ein oder anderen den ich jetzt nicht mit Namen nennen werde, der eine, nunja, recht schlichte Lernkurve über einen sehr langen Zeitraum hatte, was ich mir nur durch obigen Lernfehler erklären kann. Davor will ich dich bloß bewahren, hoffe du siehst diese Kritik positiv wie sie gemeint ist.


    3D2Y Bandicoot schrieb:

    Wieso hast du denn da unten ein and stehen? Das würde man nur bei einer Abfrage benutzen (zB if 1 = 2 and 5=4) :D
    Ansonsten seh ich da gerade keinen Fehler.

    EDIT: im Create-Event sollte stehen, ansonsten wird in jedem Step die Tür wieder geschlossen (Also wieder auf 0 gesetzt)

    GML-Quellcode

    1. image_speed = 0
    2. image_index = 0


    Jetzt habe ich einen Kilometer langen text geschrieben und Abbrechen gedrückt. :(

    Um mich nochmal schnell kurz zu fassen, nein ich nehme des nicht Böse ;)
    Nehme mir das zu Herzen. Habe mir auch gestern nochmal einige Tutorials für Grundwissen angeschaut.
    Manchmal bin ich auch nur zu schnell und denke zu wenig nach. Siehe Seite 2 in diesem Thread. Habe heute schon zwei mal eine Frage gestellt die ich dann kurz danach selbst gelöst habe.

    lg

    ps. deine Hilfestellung zu meinem Aktuellen Problem (Tür) versteh ich (bin ehrlich) GARNICHT :|