main.lua 1.0 KB

1234567891011121314151617181920212223242526272829
  1. function lovr.draw(pass)
  2. --error_me()
  3. -- draw ground and 12 rotating blocks around world origin
  4. pass:setColor(0x204316)
  5. pass:cylinder(mat4(0,-1,0):rotate(math.pi/2, 1,0,0))
  6. pass:setColor(0xcf9733)
  7. for angle = 0, math.pi * 2, math.pi / 6 do
  8. local pose = mat4()
  9. pose:rotate(angle + lovr.timer.getTime() / 10, 0,1,0) -- rotate over Y axis
  10. pose:translate(0, 1, -2) -- move away from origin
  11. pose:scale(0.8, 0.3, 0.1) -- block size
  12. pass:box(pose)
  13. end
  14. -- draw blocks synced to hand controllers
  15. pass:setColor(0xd2b793)
  16. for _, handName in ipairs(lovr.headset and lovr.headset.getHands() or {}) do
  17. local skeleton = lovr.headset.getSkeleton(handName)
  18. if skeleton then
  19. for _, bone in ipairs(skeleton) do
  20. local x, y, z, r, angle, ax,ay,az = unpack(bone)
  21. pass:sphere(mat4(x, y, z, angle, ax,ay,az):scale(0.004, 0.002, 0.006))
  22. end
  23. else
  24. local handPose = mat4(lovr.headset.getPose(handName))
  25. handPose:scale(0.04, 0.08, 0.08)
  26. pass:box(handPose)
  27. end
  28. end
  29. end