Leg-das-Rohr-Minispiel

  • #110, z MachtnixSaturday, 03. June 2017, 20:19 hodinky 7 years ago
    Reset habe ich verworfen. Ich bekomme Lua-Script und Editor-Aktionen (bzw. Werte und Bedingungen) nicht zusammen. Es sind irgendwie zwei völlig unterschiedliche und unabhängige Welten, die zwar jeweils für sich alleine, aber kaum gut miteinander arbeiten...

    Rohrspiel

    Kapitán

    1097 Posts


  • #111, z sebastianSaturday, 03. June 2017, 21:09 hodinky 7 years ago
    Reset habe ich verworfen. Ich bekomme Lua-Script und Editor-Aktionen (bzw. Werte und Bedingungen) nicht zusammen. Es sind irgendwie zwei völlig unterschiedliche und unabhängige Welten, die zwar jeweils für sich alleine, aber kaum gut miteinander arbeiten...

    Rohrspiel
    an sich arbeiten die beiden Welten wunderbar miteinander. Da Lua aber eigens geschriebenen code nutzt kommt es halt immer drauf an, wie man die geschriebenen Funktionen einbindet...


    Kapitán

    2346 Posts

  • #112, z MachtnixSaturday, 03. June 2017, 21:47 hodinky 7 years ago
    Es ist immer noch das uralte Dilemma, dass ich Werte aus dem Editor ins Lua-Script bekommen muss und umgekehrt. Da ist es einfacher, entweder ALLES mit hauseigenen Aktionen zu machen oder ALLES in Lua. So ein Mischmasch hat mich jetzt einige Wochen Frust gekostet.

    So muss ich einen Wert aus dem Editor abgreifen, ihn in Lua verändern und dann wieder in den Editor zurücksenden, und hoffen, dass er zum richtigen Zeitpunkt wahrgenommen und angewandt wird - ich glaube, darin liegen die meisten Fehler. Naiv wie ich bin, habe ich das Script einfach von oben nach unten linear angelegt: wenn der Interpreter unten angekommen ist, wird er schon das gemacht haben, was drinstand... Irrtum.

    Natürlich steht alles irgendwo im Wiki, aber selbst wenn ich das eines Tages beherrschen sollte, weiß ich immer noch nicht genau, wie das intern abläuft und welche Prioritäten der Kern setzt und in welcher Reihenfolge er abarbeitet. Funktionen schreibe ich eher selten; ich rufe die Scripte meist als "ausführbar" auf.


    Kapitán

    1097 Posts

  • #113, z sebastianSunday, 04. June 2017, 00:15 hodinky 7 years ago
    Dass es etwas anders tut als in deinem Script steht halte ich für unwahrscheinlich. Ein computer wird nur das tun, was ihm angewiesen wurde zu tun...

    und weil du keine Funktionen nutzt, wird das Skript einmal je Aufruf von oben nach unten durchgenudelt mit den Werten, die es zum Zeitpunkt des Ausführens bezieht. Innerhalb von wenigen millisekunden. Keine Chance zwischendrin mal etwas mit Aktionsteilen einzuschieben oder rauszuschreiben und später etwas modifiziert mit den Daten (im selben Script) was anderes machen. Alles passiert bei dir auf einmal nacheinander in dem Script und da liegt glaube ich an sich das grundsätzliche Problem im Design deines Minispiels.

    Das "wahrnehmen zur richtigen Zeit" kriegst du also nur hin, wenn du deine ganzen Skripte ordentlich unterteilst (Stichwort Funktionen) und nur die Teile ausführst die zum Zeitpunkt vor/nach einer Aktion Sinn ergeben. Darauf zu hoffen, dass ein Wert zu einem Zeitpunkt X schon errechnet wurde ist hier der falsche Weg.

    Kapitán

    2346 Posts

  • #114, z MachtnixSunday, 04. June 2017, 01:23 hodinky 7 years ago
     Alles passiert bei dir auf einmal nacheinander in dem Script und da liegt glaube ich an sich das grundsätzliche Problem im Design deines Minispiels.

    Das "wahrnehmen zur richtigen Zeit" kriegst du also nur hin, wenn du deine ganzen Skripte ordentlich unterteilst (Stichwort Funktionen) und nur die Teile ausführst die zum Zeitpunkt vor/nach einer Aktion Sinn ergeben.
    Vielleicht im nächsten Projekt (das sehr script-lastig sein wird). smile

    Dass alles nacheinander im Script abläuft, ist ja eigentlich auch mein Ziel. Ich gebe oben einen Wert ein, lasse den abarbeiten und weise den neuen Wert erneut derselben Variablen zu. Dann rufe ich ein weiteres Script auf (z.B. in den Aktionen), das danach kommt, übernheme dadurch den neuen Wert und erwarte, dass dieser mit hinübergenommen wird (da ich davon ausgehe, dass alle Variablen global sind - so habe ich das jedenfalls verstanden).

    Ich muss nur aufpassen, dass der Wert am Anfang einmal deklariert wird, damit kein "nil"-Fehler entsteht, wenn ein Aufruf zu früh kommt. Deshalb habe ich ein Definitionsscript mit den wichtigen Variablen, die einfach auf einen Startwert gesetzt sind.
    Manchmal ignoriere ich "nil" auch, wenn es keinen Schaden anrichtet... Solange es den Spieler nicht tangiert...

    So lasse ich nacheinander die Scripte aufrufen. Ich benutze quasi Einzel-Scripte anstatt Funktionen, denn so kann ich zwischen den Aufrufen andere Editor-Aktionen einschieben, die ich sonst irgendwie in die Scripte hineinmogeln müsste - und ich bin noch nicht soweit, dass das immer klappt. Das liegt ohne Frage am unverständlichen Zuweisungsprinzip...  Ich springe also in Lua und zwischendurch in den Editor und wieder zurück...

    Z.Z  tue ich mich immer noch schwer, einen Wert aus der Kulisse oder von einem Objekt  auszulesen, ins Script einzufügen, zu berechnen und danach wieder in den Editor zurückzugeben (z.B. für Reset, um alle Werte zurück auf Null zu setzen). Es gibt eben im Editor Funktionen, die dort einfacher zu lösen sind (z.B. Textausgabe), und es gibt dafür in Lua Funktionen, die dort einfacher zu lösen sind (z.B. Schleifen). Beide Welten haben ihre Vorteile...

    Aber egal - es war eine hilfreiche Lektion. Vielen Dank nochmal für deine Hilfe.

    Machtnix

    Kapitán

    1097 Posts

  • #115, z MachtnixWednesday, 07. June 2017, 20:06 hodinky 7 years ago
    Version mit 20 Sekunden verzögerter Einlaufzeit und Reset (als Autosave):

    Rohrspiel Nr.9

    Kapitán

    1097 Posts

  • #116, z MachtnixSaturday, 10. June 2017, 02:33 hodinky 7 years ago
    I have built a Linux-Version from R5, but I can't play it (my Linux is only 32 bit). If somebody has a 64bit-Linux he may test if the game building was successful. Thanks.

    Rohrspiel-Linux


    Kapitán

    1097 Posts

  • #117, z SimonSSaturday, 10. June 2017, 14:11 hodinky 7 years ago
    works for me. 

    Kapitán

    1582 Posts

  • #118, z MachtnixSaturday, 10. June 2017, 15:47 hodinky 7 years ago
    Thx. Im Linuxmintuser-Forum sagte man mir, man müsse start und visplayer ausführbar schalten, dann läuft es mit ./start. 

    Kapitán

    1097 Posts

  • #119, z MachtnixSunday, 11. June 2017, 17:04 hodinky 7 years ago
    Installiere gerade ein 64bit-Mint-System auf'n Stick. Ist zwar doof, weil der Vorteil von 64 bit dadurch zunichte gemacht wird; aber ich habe gerade keine Festplatte über. smile Kann ich dann selbst testen. 

    Kapitán

    1097 Posts

  • #120, z MachtnixSunday, 11. June 2017, 18:53 hodinky 7 years ago
    Klappt.

    Witzig ist nur, dass die Log-Informationen im Terminal ausgegeben werden. Ich meine, ich hab nichts zu verbergen, aber verunsichert das den Linux-Spieler nicht? U.a. wird das gesamte Lua-Script ausgedruckt... Außerdem sind da noch 1000000 Kommentare und Print-Befehle drin (nur für mich und zu Testzwecken...).

    Kapitán

    1097 Posts