examples
_animations
- animating-circles.js
- circle-grid.js
- circles-border-timer.js
- circles-inout.js
- circles.js
- cloud-delay.js
- clown.js
- drops.js
- grid.js
- helloworld-animate.js
- keyframe.js
- shapes-border.js
- square-grid.js
- squares-border-timer.js
- squares-timer-overlap.js
- troll.js
- circles2.js
- helloworld-animate2.js
- keyframe2.js
- keyframe3.js
_audio
_gravity
_particles
_sub
display
movement
- arrows-aim-shoot.js
- arrows-line.js
- arrows-rotate.js
- arrows-shift.js
- arrows-x.js
- arrows-y.js
- drag-drop.js
- falling-click.js
- follow-line.js
- follow-x.js
- follow-y.js
- follow.js
- if-on-edge-bounce.js
- input-aim-shoot.js
- input-point-goto.js
- input-point-moveto.js
- joystick.js
- strech-back-release-physics.js
- stretch-front-release-physics.js
- stretch-front-release.js
- drag-drop2.js
physics
showcase
tests
user-interface
confetti2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
xpos = 0.5
range = (a,b) => (b-a)*Math.random() + a
times(350, () => {
let c = display.circle(random.pos(), random.num(4,8))
c.replace = function() {
this.color = color.hsb(random.num(0,360), 75, 95)
this.vx = range(0, 2) + 8 * xpos - 5
this.vy = 0.7 * c.radius + range(-1, 1)
this.dop = -(0.006 * range(1, 4))
this.alpha = 1
this.position = random.pos()
}
c.replace()
})
update(() => {
xpos = input.x / display.width
display.all((elem) => {
elem.x += elem.vx
elem.y += elem.vy
elem.alpha += elem.dop
if (elem.alpha == 0 || elem.y > display.height + elem.radius) {
elem.replace()
}
})
})