platforms2.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
30
31
32
33
34
35
36
37
38
39
[
  [250, 150, 600, 15],
  [710, 275, 600, 15],
  [250, 400, 600, 15],
  [710, 525, 600, 15]
].each((ar, i) => {
  let f = display.rect(...ar)
  f.angle = (i == 1 || i == 3) ? -15 : 15
  f.color = color.clear

  let ang = ((f.y / display.height * 360) + 180) % 360
  f.borderColor = color.hsb(f.y / display.height * 360, 55, 95)
  f.borderWidth = 2

  physics.add(f, { kinematic: true })

  f.animate({ t: 2000, autoreverse: true }, (to) => {
    to.angle += (i == 1 || i == 3) ? 10 : -10
  })
})

repeat(200, () => {
  let c = display.circle(100, 50, 5)
  c.color = color.hsb(0, 55, 95)
  physics.add(c, { friction: 0.5, bounce: 0.7, density: 1 })
})

update(() => {
  display.each("circle", (el) => {
    el.ifOnEdgeContinue()
    el.color.hue = el.y / display.height * 360
  })
})

btn = ui.button("Flip!", 100, 540)
btn.action(() => {
  let g = physics.gravity
  physics.setGravity(0, -g.y)
})