alphacubes.monkey2 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. Namespace myapp
  2. #Import "<std>"
  3. #Import "<mojo>"
  4. #Import "<mojo3d>"
  5. #Import "assets/"
  6. Using std..
  7. Using mojo..
  8. Using mojo3d..
  9. Class MyWindow Extends Window
  10. Field _scene:Scene
  11. Field _camera:Camera
  12. Field _light:Light
  13. Method New( title:String="Simple mojo app",width:Int=640,height:Int=480,flags:WindowFlags=WindowFlags.Resizable )
  14. Super.New( title,width,height,flags )
  15. SetConfig( "MOJO3D_RENDERER","forward" )
  16. 'create scene
  17. '
  18. _scene=New Scene
  19. _scene.ClearColor=Color.Sky
  20. _scene.FogColor=Color.Sky
  21. _scene.FogNear=25
  22. _scene.FogFar=50
  23. 'create camera
  24. '
  25. _camera=New Camera( Self )
  26. _camera.Near=.1
  27. _camera.Far=100
  28. _camera.Move( 0,10,-10 )
  29. New FlyBehaviour( _camera )
  30. 'create light
  31. '
  32. _light=New Light
  33. _light.Rotate( 30,60,0 )
  34. 'Create cube
  35. '
  36. Local cube:=Model.CreateBox( New Boxf( -1,1 ),1,1,1,New PbrMaterial( Color.Grey ) )
  37. cube.CastsShadow=False
  38. For Local x:=-50.0 To 50.0 Step 2.5
  39. For Local z:=-50.0 To 50.0 Step 2.5
  40. Local copy:=cube.Copy()
  41. copy.Move( x,0,z )
  42. copy.Alpha=(x+50)/100
  43. Next
  44. Next
  45. cube.Destroy()
  46. End
  47. Method OnRender( canvas:Canvas ) Override
  48. RequestRender()
  49. _scene.Update()
  50. _scene.Render( canvas )
  51. canvas.DrawText( "FPS="+App.FPS,0,0 )
  52. End
  53. End
  54. Function Main()
  55. New AppInstance
  56. New MyWindow
  57. App.Run()
  58. End