2 Scripts gleichzeitig starten

Startseite Foren Deutsches LiveCode-Forum 2 Scripts gleichzeitig starten

  • Dieses Thema hat 9 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahre von HeiMa66.
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
      Verwalter

      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
      Verwalter

      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
      Verwalter

      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
      Verwalter

      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.