scripted animation advice

Malte Brill malte.brill at t-online.de
Wed Jun 30 05:52:50 EDT 2004


I´ve improved the stack a bit:

Create a stack with a button called "startWheel"

You initialise it from the messagebox:

send init to btn "startWheel"

if you don´t like the colors you can

send changecolor to btn "startWheel"

a few times or set the colors individually.
If you klick the button the spinning will decrease speed and put which part
is on top, the backColor of that part.

 
Here is the script:


on mouseUp
  set the flag of me to the flag of me*-1
  spinTheWheel
  set the speed of me to 60+random(35)
  decreasespeed
end mouseUp

on spinTheWheel
  lock screen
  repeat with i=1 to the elements of me
    put the startangle of grc ("part"&i) into newangle
    put newangle-the speed of me into newangle
    if newangle<1 then put newangle+360 into newangle
    set the startangle of grc ("part"&i) to newangle
  end repeat
  unlock screen
  if the flag of me=1 then send spinTheWheel to me in 20 milliseconds
end spinTheWheel

on decreaseSpeed
  set the speed of me to the speed of me-1
  if the speed of me<=0 then
    set the flag of me to -1
    whichPart
  end if
  if the flag of me=1 then send decreaseSpeed to me in 100 milliseconds
end decreaseSpeed

on whichpart
  repeat with i=1 to the elements of me
    if the startangle of grc ("part"&i)>360/the elements of me and the \\
       startangle of grc ("part"&i)<(360/the elements of me)*2 then
      --mind linebreak
      put i, the backcolor of grc ("part"&i)
      exit repeat
    end if
  end repeat
end whichpart

on init
  set the elements of me to 8
  set the speed of me to 60
  set the flag of me to -1
  repeat with i=1 to the elements of btn "startWheel"
    create grc ("part"&i)
    set the style of grc ("part"&i) to oval
    set the height of grc ("part"&i) to 100
    set the width of grc ("part"&i) to 100
    set the loc of grc ("part"&i) to the loc of this card
    set the arcangle of grc ("part"&i) to 360/the elements \\
        of btn "startWheel"
    --mind linebreak
    put 360/the elements of btn "startWheel"*(i-1) into thestartAngle
    set the startangle of grc ("part"&i) to theStartangle
    set the backcolor of grc ("part"&i) to any line of the colornames
  end repeat
end init

on changeColor
  repeat with i=1 to the elements of me
    set the backcolor of grc ("part"&i) to any line of the colornames
  end repeat
end changeColor

Best,

Malte



More information about the use-livecode mailing list