June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
43
Task/Animate-a-pendulum/Lingo/animate-a-pendulum.lingo
Normal file
43
Task/Animate-a-pendulum/Lingo/animate-a-pendulum.lingo
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
global RODLEN, GRAVITY, DT
|
||||
global velocity, acceleration, angle, posX, posY
|
||||
|
||||
on startMovie
|
||||
|
||||
-- window properties
|
||||
_movie.stage.title = "Pendulum"
|
||||
_movie.stage.titlebarOptions.visible = TRUE
|
||||
_movie.stage.rect = rect(0, 0, 400, 400)
|
||||
_movie.centerStage = TRUE
|
||||
_movie.puppetTempo(30)
|
||||
|
||||
RODLEN = 180
|
||||
GRAVITY = -9.8
|
||||
DT = 0.03
|
||||
|
||||
velocity = 0.0
|
||||
acceleration = 0.0
|
||||
angle = PI/3
|
||||
posX = 200 - sin(angle) * RODLEN
|
||||
posY = 100 + cos(angle) * RODLEN
|
||||
paint()
|
||||
|
||||
-- show the window
|
||||
_movie.stage.visible = TRUE
|
||||
end
|
||||
|
||||
on enterFrame
|
||||
acceleration = GRAVITY * sin(angle)
|
||||
velocity = velocity + acceleration * DT
|
||||
angle = angle + velocity * DT
|
||||
posX = 200 - sin(angle) * rodLen
|
||||
posY = 100 + cos(angle) * rodLen
|
||||
paint()
|
||||
end
|
||||
|
||||
on paint
|
||||
img = _movie.stage.image
|
||||
img.fill(img.rect, rgb(255,255,255))
|
||||
img.fill(point(200-5, 100-5), point(200+5, 100+5), [#shapeType:#oval,#color:rgb(0,0,0)])
|
||||
img.draw(point(200, 100), point(posX, posY), [#color:rgb(0,0,0)])
|
||||
img.fill(point(posX-20, posY-20), point(posX+20, posY+20), [#shapeType:#oval,#lineSize:1,#bgColor:rgb(0,0,0),#color:rgb(255,255,0)])
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue