prøv at sætte dette script til i stedet for din exitframe handler i score\'n:
property pStartPos
-- start med at skrive din startpos on beginsprite me pStartPos = 10 end
on exitFrame if the mousedown then if (sprite(2).locH < 448) then sprite(2).locH = sprite(2).locH +20 else sprite(2).locH = pStartPos end if end if go the frame end
nu vil sprite(10) kører så længe den er under 448 og hvis ikke så starte igen ved 10
Jeg går ud fra at du vil have spriten til at bevæge sig vandret i 20 pixel hop mellem værdierne 28 og 448.
Denne \"behavior\" kan enten gå ensrettet fra ventre til højre(sæt direction = 1), eller loope den anden vej når den overskrider 28 og 448 (sæt Direction = 2).
Vælg \"behavior\" i castmember info dialogboks. Selekter spriten og tilføj denne behavior. Du får også brug for en
on exitFrame go to the frame end
i frameScriptet.
Hvis vi tager fejl i fortolkingen af dit spørgsmål, håber jeg du vil uddybe det nærmere.
Her er selve behavioren. -------------------------------
property minH property maxH property mySprite property moveH property direction
on beginSprite me minH = 28 maxH = 448 moveH = 20 mySprite = the spriteNum of me direction = 2 --tovejs bevægelse. sæt direction = 1 hvis den blot skal standse ved 448 end
on exitFrame me if the MouseDown then moveBackNforth me end if end
on MoveMe me set myH = sprite(mySprite).locH
if (myH < maxH) and (myH > minH) then sprite(mySprite).locH = sprite(mySprite).locH + moveH end if end
on moveBackNforth me set myH = sprite(mySprite).locH
if (myH < maxH) and (myH > minH) then nothing else if direction = 2 then set moveH = -moveH else exit end if end if sprite(mySprite).locH = sprite(mySprite).locH + moveH end
er det mig der har misforstået noget, hvorfor vil i ikke bruge en repeat.
on mouseDown me set pos = sprite(2).locH repeat while the mouseDown -- put pos \"hojre locH\" if (sprite(2).locH > 28) and (sprite(2).locH < 448) then sprite(2).locH = pos +20 end if updateStage end repeat end
Så slipper du os for at ha\' en if i en exitFrame der bruger lidt kræft.
mozart> Dit script vil faktist optage all processor tid!
Når du laver sådan en stram repeat løkke kan vil alle andre events stå i kø indtil the mouseDown = false. Det er någet man bør undgå i det omfang man kan. Til dette script er en check i en exitFrame handler mere end rigeligt.
men det er rart at vide at der trodsalt er andre end Mike som læser denne side.
Luk venligst dit spørgsmål ved at selv oprette et svarfelt og derefter acceptere det. Du kan derved få dine point tilbage :) mvh geo
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.