Line Tracing
Roger Guay
rogerguay at centurytel.net
Fri Jan 31 18:05:01 EST 2003
Sarah, Jim
What I'm trying to do is trace a line in time as a ball is moved across
the screen. Near as I can tell, I want the screen to update but not
redraw (if that makes any sense?) I've done this in ToolBook on the PC
but I much prefer to stay on my Mac. Here is a description of my stack:
Create a vertical line and label it "Yaxis" and an horizontal line and
Label it "Xaxis" such that they intersect and define the origin
somewhere near the lower left corner of your stack. Create a brightly
colored circle graphic and name it "Ball." Create 2 fields, one for
Theta so labeled which defines the angle from the horizon that the ball
is being fired, and one for V so labeled which defines the velocity of
the ball when fired. Create a "Fire" button and insert the following
script:
on MouseUp
global V, Xo, Yo, Theta, T, X
--put item 1 of the rect of graphic "Yaxis" into Xo. Yaxis is a
vertical line and Xo,Yo define the origin of motion
--put item 4 of the rect of graphic "Yaxis" into Yo.
put field "V" into V ---- try a value of about 27 in field "V"
Put the value of field "Theta" into Theta ----try a value of 1.2 in
field "Theta"
set the loc of graphic "mortor" to Xo,Yo ---- Graphic "mortor" is a
small red round ball.
show graphic "mortor"
put 0 into T
put xo into x
put Yo into y
play "Mortor.aiff"
repeat while Y <= Yo + 1
add 1 to T
put the value of (Xo+V*cos(Theta)*T ) into x
put the value of (Yo - V*sin(Theta)*T + .5*T^2 ) into Y
set the loc of graphic "mortor" to X,Y
wait 1
end repeat
---------- the rest of the script results in a silly explosion at the
last location of the mortor -------
play "Boom.aiff"
hide graphic "mortor"
set the loc of graphic "Burst" to x,Yo
repeat 35
show graphic "burst"
wait 1
hide graphic "burst"
wait 1
end repeat
end MouseUp
Jim has actually provided a solution for me that works well if I insert
"wait .01" in his repeat loops. I can only assume it has something to
do with processing speed of the computer (I'm using a high end iMac
with OS X.) Without the "wait" command in the repeat loop, Jim's
scripts are very choppy on my computer.
Finally, as I say, Jim's solution works well but I think it would
nevertheless be more "elegant" to do this as I have in ToolBook where
one is able to stop the screen redraw.
Thanks very much for joining in the fun, Roger
More information about the use-livecode
mailing list