Avatar billede sorthvidkatkat Nybegynder
12. juni 2001 - 11:22 Der er 9 kommentarer og
1 løsning

Parabel i Lingo

Hvordan laver man en parabel i Lingo?

200 point for hele koden.

Avatar billede dengalepose.dk Nybegynder
12. juni 2001 - 12:22 #1
Hedder det ikke noget med path ?
Avatar billede lingoman Nybegynder
12. juni 2001 - 19:02 #2
Hej sorthvidkatkat!

Her er der en behavior som bruger sprite().trails til at tegne en Parabel på skærmen.

--draw parabola behavior---------------

property mySprite, screenWidth, screenHeight,a

global pencilTip, xOffset, yOffset

on beginSprite me
  mySprite = me.spriteNum
  pencilTip = me
  sprite(mySprite).trails = 0
 
  a = 0.01 -- adjust to your own preference
 
  --find screen limits

  myMonitor = the DesktoprectList[1]
  screenWidth = the right of myMonitor
  screenHeight = the bottom of myMonitor
end

on drawParabola me
  if voidP(xOffset) or voidP(yOffset) then exit
  --get ready
  set x = 0
  sprite(mySprite).trails = 1
 
  repeat with x = 0 to screenWidth
    y = a* power((x - xOffset),2) + yOffset
    --limit check
    if (y < 0) or (y > screenHeight) then next repeat
   
    sprite(mySprite).Loc = point(x,y)
    updateStage
  end repeat
 
 
  --finished drawing reset for next drawing

  xOffset = VOID
  yOffset = VOID
  sprite(mySprite).trails = 0

end


--end sprite behavior
anvend en lille sprite member fks 1x 1 pixels

Du skal også bruge det næste movieScript for at definere hvor parabelens spids skal være:

--movieScript-----------------

global xOffset, yOffset, pencilTip

on mouseUp
  --Der hvor du klikker bliver parabelens spids punkt
  xOffset = the mouseH
  yOffset = the mouseV
  if objectP(pencilTip) then
    drawParabola pencilTip
  end if
 
end

--end MovieScript

til sidst skal du have en FrameScript

on exitFrame
  go to the frame
end


dette sørger for at parablen ikke bliver slettet før en anden sprite er placeret over kurven

Håber at det var hvad du bad om!

mvh

Geo

PS. Jeg sender gerne den færdige .dir til dig hvis du sender en email til geo@lingoman.dk
Avatar billede lingoman Nybegynder
13. juni 2001 - 10:06 #3
Jeg har uddybet idéen bag koden til bas (Martin). Lad mig høre fra jer hvis i for brug for ændringer.

mvh Geo
Avatar billede sorthvidkatkat Nybegynder
13. juni 2001 - 12:40 #4
Vi vil gerne have rykket parabelens endepunkter (venstre/højre) et antal pixels ned på stagen. Vi mener, at \"set stagewidth to the width of the rect of the stage\" skal erstattes med talværdier for scenens højde og bredde, for at definere hvor parabelen skal befinde sig på scenen.

Du må gerne sende .dir filen til tniels58@students.aabc.dk

På forhånd tak
 



Her er det script, vi lavede i samarbejde med en lærer :


property mySprite, hdirection, stagewidth, alive, konstantm1, udflad

on beginsprite me
 
  set mySprite to the spritenum of me
  set hdirection to 10
  set stagewidth to the width of the rect of the stage
  set the locH of sprite mySprite to 0
  set the locV of sprite mySprite to 0
  set konstantm1 to -1
  set udflad to 1000
end

on exitFrame me
 
  set myH to the locH of sprite mySprite
 
  if myH < 0 then
    set hdirection to 10
  end if
 
  if myH > stagewidth then
    set hdirection to -10
  end if
 
  set myX to myH + hdirection
  set myY to konstantm1 * myX * myX / udflad - konstantm1 * myX * stagewidth / udflad + konstantm1 * stagewidth * 10 / udflad
  set the locH of sprite mySprite to myX
  set the locV of sprite mySprite to myY
end

SORTHVIDKATKAT
Avatar billede lingoman Nybegynder
13. juni 2001 - 15:06 #5
Der ser ud til at være en lille fejl i formlen som I bruger. Jeg har derfor tilladt mig at lave en enklare løsning.

Vi skal bruge 2 sprites:
Den ene danner rammen for parabelen, mens den anden er figuren.

Man kan frit hive og tilpasse rammens sprite. Figuren starter i rammens øvre-venstre hjørne, når ned til rammens bund, fortsætter op til øvre-højre hjørne, og skifter retning.

en global \"parabelRamme\" er rammens sprite kanal.

------figurens behavior ----------------------

global parabelRamme
property pTop, pBottom, pLeft, pRight, xOffset, yOffset, pKonstant, xStep, mySprite

on beginSprite me
 
  set ramme = the rect of sprite(parabelRamme)
  --indlæs parabel ramme placering
  pTop = ramme.top
  pBottom = ramme.bottom
  pLeft = ramme.left
  pRight = ramme.right
 
  set mySprite = the spriteNum of me
  set xStep = 10
 
  set xOffset = integer((pLeft + pRight)/2.0)
  set yOffset = pBottom
 
  set pWidth = pLeft - xOffset
  set pHeight = pTop - yOffset
 
  --compute parabola constant which has its endpoints passing through the top corners of sprite(parabelRamme)
 
  pKonstant = 1.00*pHeight/power(pWidth,2)
 
  sprite(mySprite).LocH = pLeft
 
end




on exitFrame me
 
  set myX = sprite(mySprite).LocH
 
 
  set myX = myX + xStep
 
  if (myX > pRight) or (myX < pLeft) then
    set xStep = -xStep  --reverse direction if passed boundary
    exit
  end if
 
  myY = pKonstant * power( myX - xOffset, 2) + yOffset
 
  sprite(mySprite).loc = point(myX, myY)
 
end
--------------------end parabel behavior----------

Jeg sender filen til Jer som en Director 7 fil.

Jeg håber at I kan bruge det!

mvh Geo
Avatar billede lingoman Nybegynder
14. juni 2001 - 12:56 #6
Hej sorthvidkat,

sortHvidKat01.dir koden blev sendt til Jer igår og jeg håber at den virker efter dit
ønske.

Lad mig vide hvis i får brug for mere.

mvh Geo
Avatar billede dengalepose.dk Nybegynder
14. juni 2001 - 13:53 #7
Vi har fået parablen til at virke med din hjælp og er meget taknemlige. Skal vi sende dig .dir filen, når vi er helt færdige ? Det er et lille spil med Krusty the Clown fra Simpsons..

Mange, mange tak

VH.

Sorthvidkatkat og Bas
Avatar billede dengalepose.dk Nybegynder
14. juni 2001 - 13:56 #8
Grunden til jeg er logget ind som dengalepose.dk og svarer som sorthvidkatkat, er at jeg bruger dengalepose.dk til privat brug og sorthvidkatkat til skolearbejde. Håber dette kan accepteres ?!?
Avatar billede lingoman Nybegynder
14. juni 2001 - 14:05 #9
Det er rart at høre fra Director folk som jer og jeg er kun glad for at kunne hjælpe lidt!
Ja,jeg vil meget gerne se jeres spil.

Held og lykke med projektet!

mvh Geo
Avatar billede dengalepose.dk Nybegynder
14. juni 2001 - 14:12 #10
Tak endnu en gang.

Vi er færdige i løbet næste uge, så sender jeg spillet til dig.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester