light.bmx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. ' light.bmx
  2. ' from minib3d examples
  3. Strict
  4. Framework b3d.b3dglgraphics
  5. Local width%=800,height%=600,depth%=0,Mode%=2
  6. Graphics3D width,height,depth,Mode
  7. AmbientLight 32,32,32
  8. Local cam:TCamera=CreateCamera()
  9. PositionEntity cam,0,0,-60
  10. Local light:TLight=CreateLight(2)
  11. LightColor light,255,0,0
  12. LightRange light,5
  13. Local lr%
  14. Local light2:TLight=CreateLight(2)
  15. LightColor light2,0,255,0
  16. LightRange light2,5
  17. PositionEntity light2,0,0,10
  18. Local ent1:TMesh=LoadAnimMesh("media/grid.b3d")
  19. Local ent2:TEntity=CopyEntity(ent1)
  20. PositionEntity ent1,0,10,0
  21. PositionEntity ent2,0,-10,0
  22. RotateEntity ent1,180,0,0
  23. Local ent3:TMesh=CreateSphere()
  24. Local ent4:TMesh=CreateSphere()
  25. PositionEntity ent3,-10,0,0
  26. PositionEntity ent4,10,0,0
  27. ScaleEntity ent3,4,4,4
  28. ScaleEntity ent4,4,4,4
  29. ' used by fps code
  30. Local old_ms%=MilliSecs()
  31. Local renders%, fps%
  32. While Not KeyDown(KEY_ESCAPE)
  33. If KeyHit(KEY_ENTER) Then DebugStop
  34. If KeyHit(KEY_L)
  35. lr=Not lr
  36. If lr Then LightRange light2,0 Else LightRange light2,5
  37. EndIf
  38. ' control camera
  39. MoveEntity cam,KeyDown(KEY_D)-KeyDown(KEY_A),0,KeyDown(KEY_W)-KeyDown(KEY_S)
  40. TurnEntity cam,KeyDown(KEY_DOWN)-KeyDown(KEY_UP),KeyDown(KEY_LEFT)-KeyDown(KEY_RIGHT),0
  41. RenderWorld
  42. renders=renders+1
  43. ' calculate fps
  44. If MilliSecs()-old_ms>=1000
  45. old_ms=MilliSecs()
  46. fps=renders
  47. renders=0
  48. EndIf
  49. Text 0,0,"FPS: "+fps
  50. Flip
  51. Wend
  52. End