Startseite › Foren › Deutsches LiveCode-Forum › 2 Scripts gleichzeitig starten
- Dieses Thema hat 9 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 6 Jahren, 1 Monat von HeiMa66.
-
AutorBeiträge
-
-
Oktober 28, 2018 um 19:44 Uhr #8273
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!
-
Oktober 28, 2018 um 19:58 Uhr #8275
Hallo Heiko,
zeig doch mal so ein Script oder beide, vorher kann ich nichts dazu sagen.
Gruß
Klaus
-
Oktober 28, 2018 um 21:51 Uhr #8277
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 spinne1Bewegenon 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 spinneWaagerechtSpinne1on 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 -
Oktober 28, 2018 um 21:53 Uhr #8279
Sorry, wusste nicht das es die Formatierung nicht mit übernimmt, versuche es besser hinzubekommen
-
Oktober 28, 2018 um 22:46 Uhr #8281
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 spinne1Bewegenon 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 spinneWaagerechtSpinne1on 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` -
Oktober 28, 2018 um 23:05 Uhr #8285
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
-
Oktober 28, 2018 um 23:55 Uhr #8287
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 Scripton 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
-
Oktober 29, 2018 um 13:54 Uhr #8296
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
-
Oktober 29, 2018 um 15:54 Uhr #8298
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 ...
-
Oktober 29, 2018 um 16:40 Uhr #8300
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. ?
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.