effects.monkey2 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. Field _donut:Model
  14. Field _bloom:BloomEffect
  15. Field _mono:MonochromeEffect
  16. Method New( title:String="Simple mojo app",width:Int=640,height:Int=480,flags:WindowFlags=WindowFlags.Resizable )
  17. Super.New( title,width,height,flags )
  18. _scene=Scene.GetCurrent()
  19. _scene.ClearColor=Color.Black
  20. _bloom=New BloomEffect
  21. _bloom.Enabled=True
  22. _scene.AddPostEffect( _bloom )
  23. _mono=New MonochromeEffect
  24. _mono.Enabled=False
  25. _scene.AddPostEffect( _mono )
  26. 'create camera
  27. '
  28. _camera=New Camera( self )
  29. _camera.Move( 0,10,-10 )
  30. New FlyBehaviour( _camera )
  31. 'create light
  32. '
  33. _light=New Light
  34. _light.RotateX( 90 )
  35. Local material:=New PbrMaterial( New Color( 2,.5,0,1 ),0,1 )
  36. _donut=Model.CreateTorus( 2,.5,48,24,material )
  37. _donut.AddComponent<RotateBehaviour>().Speed=New Vec3f( .1,.2,.3 )
  38. _donut.Move( 0,10,0 )
  39. End
  40. Method OnRender( canvas:Canvas ) Override
  41. RequestRender()
  42. If Keyboard.KeyHit( Key.Key1 ) _bloom.Enabled=Not _bloom.Enabled
  43. If Keyboard.KeyHit( Key.Key2 ) _mono.Enabled=Not _mono.Enabled
  44. _scene.Update()
  45. _scene.Render( canvas )
  46. canvas.DrawText( "Bloom="+_bloom.Enabled+" (1) monochrome="+_mono.Enabled+" (2)",0,0 )
  47. End
  48. End
  49. Function Main()
  50. New AppInstance
  51. New MyWindow
  52. App.Run()
  53. End