2 Scripts gleichzeitig starten

Startseite Foren Deutsches LiveCode-Forum 2 Scripts gleichzeitig starten

Ansicht von 9 Antwort-Themen
  • Autor
    Beiträge
    • #8273
      HeiMa66
      Teilnehmer

        Hallo Forum,

        ich möchte mit zwei Images so eine Art Wettlauf machen. Die Images(Scripte) machen was sie sollen, nur leider nacheinander. Ich bekomme nicht hin sie gleichzeitig durch ein Event (MouseUp usw.) zu starten. Könnt ihr mir helfen?

        Danke Schön im Voraus, Grüsse Heiko!

      • #8275
        Klaus Major
        Administrator

          Hallo Heiko,

          zeig doch mal so ein Script oder beide, vorher kann ich nichts dazu sagen.

          Gruß

          Klaus

        • #8277
          HeiMa66
          Teilnehmer

            Hallo Klaus,
            Danke für die schnelle Reaktion.
            Hier das Script. Es bewegt ein Image von einer Spinne nach oben an einem Faden (Grafik) und wechselt bei einem bestimmten Punkt die Richtung. Die Variable tSpinne1 kommt von einem externen Script. Einige der global Vars gehören nicht zu dem Script, aber ich hab das jetzt soviel hin und her geschoben , das ich immer alles mit kopiert habe. Das andere Script ist eigentlich genau gleich bis auf die Variablen ,die natürlich anders definiert sind und eine anderer Richtungswechsel erfolgt.Das zweite Script arbeitet dann auch mit der Variablen tSpinne2 die ebenfalls von einem externen Script geliefert wird. Ich hätte nun gern, wenn es geht, das beide Images „Spinne1“ u. „Spinne2″ gleichzeitig starten. Wie gesagt, beide Script laufen gut, nur leider immer nacheinander.

            global tZaehler,tZaehler2,tZaehler3,tTS,tTS2/*TopSpinne*/,tHG,tHG2/*heightLinie*/, tHBL,tHBL2/*BottonLinie*/, tLS,tLS2/*LeftSpinne*/,tWechselRichtung,tWechselRichtung2,tSpinne1,tSpinne2

            on spinne1Bewegen
            if the top of img“spinne1″ < 110 then
            spinneWaagerechtSpinne1
            else
            spinneSenkrechtSpinne1
            end if
            end spinne1Bewegen

            on spinneWaagerechtSpinne1
            set the angle of img“spinne1″ to 90
            if tZaehler2 is not empty then
            repeat with x = 1 to tZaehler2
            set the left of img“spinne1″ to tLS – x
            wait 30 milliseconds
            end repeat
            subtract tSpinne1 from tLS
            put tLS into tLS
            put empty into tZaehler2
            else
            repeat with x = 1 to tSpinne1
            set the left of img“spinne1″ to tLS – x
            wait 30 milliseconds
            end repeat
            subtract tSpinne1 from tLS
            put tLS into tLS
            end if
            end spinneWaagerechtSpinne1

            on spinneSenkrechtSpinne1
            repeat with x=1 to tSpinne1
            set the top of img“spinne1″ to tTS – x
            put tTS-x into tWechselRichtung
            if tWechselRichtung = 109 then
            put the left of img“spinne1″ into tLS
            subtract x from tSpinne1
            put tSpinne1 into tZaehler2
            spinneWaagerechtSpinne1
            exit spinneSenkrechtSpinne1
            end if
            set the bottom of graphic“line1″ to tHBL – x
            set the height of graphic“line1“ to tHG – x
            wait 30 milliseconds
            end repeat
            put tTS – tSpinne1 into tNew
            put tNew into tTS
            put tHG – tSpinne1 into tNew2
            put tNew2 into tHG
            put tHBL – tSpinne1 into tNew3
            put tNew3 into tHBL
            end spinneSenkrechtSpinne1

            __________________
            Vielen Dank für Deine Hilfe, Grüsse Heiko

          • #8279
            HeiMa66
            Teilnehmer

              Sorry, wusste nicht das es die Formatierung nicht mit übernimmt, versuche es besser hinzubekommen

            • #8281
              HeiMa66
              Teilnehmer

                global tZaehler,tZaehler2,tZaehler3,tTS,tTS2/*TopSpinne*/,tHG,tHG2/*heightLinie*/, tHBL,tHBL2/*BottonLinie*/, tLS,tLS2/*LeftSpinne*/,tWechselRichtung,tWechselRichtung2,tSpinne1,tSpinne2
                on spinne1Bewegen
                if the top of img“spinne1″ < 110 then
                spinneWaagerechtSpinne1
                else
                spinneSenkrechtSpinne1
                end if
                end spinne1Bewegen

                on spinneWaagerechtSpinne1
                set the angle of img“spinne1″ to 90
                if tZaehler2 is not empty then
                repeat with x = 1 to tZaehler2
                set the left of img“spinne1″ to tLS – x
                wait 30 milliseconds
                end repeat
                subtract tSpinne1 from tLS
                put tLS into tLS
                put empty into tZaehler2
                else
                repeat with x = 1 to tSpinne1
                set the left of img“spinne1″ to tLS – x
                wait 30 milliseconds
                end repeat
                subtract tSpinne1 from tLS
                put tLS into tLS
                end if
                end spinneWaagerechtSpinne1

                on spinneSenkrechtSpinne1
                repeat with x=1 to tSpinne1
                set the top of img“spinne1″ to tTS – x
                put tTS-x into tWechselRichtung
                if tWechselRichtung = 109 then
                put the left of img“spinne1″ into tLS
                subtract x from tSpinne1
                put tSpinne1 into tZaehler2
                spinneWaagerechtSpinne1
                exit spinneSenkrechtSpinne1
                end if
                set the bottom of graphic“line1″ to tHBL – x
                set the height of graphic“line1″ to tHG – x
                wait 30 milliseconds
                end repeat
                put tTS – tSpinne1 into tNew
                put tNew into tTS
                put tHG – tSpinne1 into tNew2
                put tNew2 into tHG
                put tHBL – tSpinne1 into tNew3
                put tNew3 into tHBL

                /*repeat with x = 1 to 15
                set angle of img“fliege“ to 300
                wait 15 milliseconds
                set angle of img“fliege“ to 240
                wait 15 milliseconds
                end repeat*/
                end spinneSenkrechtSpinne1`

              • #8285
                Klaus Major
                Administrator

                  Hallo Heiko,

                  Du musst nach dem Einsetzen des LC Skriptes selbiges auswählebn und den CODE Tag Button oben drücken.

                  Schneller Tip:
                  Für ein „… with messages“ jedem Wait Statement hinzu:

                  ...
                  repeat with x = 1 to tZaehler2
                    set the left of img"spinne1" to tLS - x
                    wait 30 milliseconds with messages
                  end repeat
                  ...
                  wait 15 milliseconds with messages
                  ## etc... bei JEDEM wait Statement!
                  ...

                  Das sollte schon helfen, bitte mal ausprobieren.

                  Erklärung:
                  „wait xxx“ weist die Engine an, wirklich zu warten und nichts Anderes in der Zwischenzeit zu tun! Mit „… with messages“ kümmert sich die Engine während der Wartezeit auch um andere Dinge, die sonst liegen bleiben würden, bis sich mal etwas Zeit findet… 🙂

                  Gruß

                  Klaus

                • #8287
                  HeiMa66
                  Teilnehmer

                    Hallo Klaus , Danke für deine Antwort, aber das habe ich schon probiert. habe es auch sicherheitshalber gerade nochmal probiert. Selbes Ergebnis die beiden Script laufen nacheinander ab.
                    Es liegt wahrscheinlich auch eher am auslösenden Event über einen Button mit folgenden Script

                    on mouseDown pButtonNumber
                       send spinne1Bewegen  to img"spinne1"
                       send spinne2Bewegen to img"spinne2"
                    end mouseDown

                    ##Danke auch für den Tip ##

                    Ich weiss halt nicht wie ich die beiden Scripte gleichzeitig aufrufen kann.

                    Danke Schön nochmal, Gruss Heiko

                  • #8296
                    Klaus Major
                    Administrator

                      Hallo Heiko,

                      hm, das hier ist eigentlich der richtige Weg:

                      on mouseDown pButtonNumber
                         send "spinne1Bewegen" to img"spinne1"
                         send "spinne2Bewegen" to img"spinne2"
                      end mouseDown

                      Aber bitte den zu sendenden Befehl auch in Anführungszeichen setzen!

                      Ich lass mir das mal durch den Kopf gehen, vielleicht fällt mir noch was Schlaues dazu ein…

                      Gruß

                      Klaus

                    • #8298
                      Klaus Major
                      Administrator

                        Kleiner Hinweis zwischendurch, Du kannst Dir einige überflüssige Zeilen schenken!

                        ...
                         subtract tSpinne1 from tLS
                         ## put tLS into tLS
                        end if
                        end spinneWaagerechtSpinne1
                        
                        on spinneSenkrechtSpinne1
                         ...
                          end repeat
                          ## put tTS - tSpinne1 into tNew
                          ## put tNew into tTS
                          ## put tHG - tSpinne1 into tNew2
                          ## put tNew2 into tHG
                          ## put tHBL - tSpinne1 into tNew3
                          ## put tNew3 into tHBL
                        
                          ## Besser:
                          subtract tSpinne1 from tTs
                          subtract tSpinne1 from tHG
                          subtract tSpinne1 from tHBL
                        ...
                      • #8300
                        HeiMa66
                        Teilnehmer

                          Hallo Klaus,

                          on mouseDown pButtonNumber
                             send "spinne1Bewegen" to img"spinne1"
                             send "spinne2Bewegen" to img"spinne2"
                          end mouseDown

                          habe die zu sendenden Befehle mit Anführungszeichen oder ohne ausprobiert, beides geht und beides hat nach wie vor das selbe Ergebnis.

                          Danke für den subtract-Tip. Ja klar, manchmal denkt man (in dem Fall ich) viel zu kompliziert. ?

                      Ansicht von 9 Antwort-Themen
                      • Du musst angemeldet sein, um auf dieses Thema antworten zu können.