simplelight.monkey2 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. Namespace myapp
  2. #Import "<std>"
  3. #Import "<mojo>"
  4. #Import "Slate Tiles II_D.png"
  5. #Import "Slate Tiles II_N.png"
  6. #Import "Slate Tiles II_S.png"
  7. #Import "pointlight_light.png"
  8. #Import "Monkey2-logo-48.png"
  9. Using std..
  10. Using mojo..
  11. Class MyWindow Extends Window
  12. Field _floor:Image
  13. Field _light:Image
  14. Field _logo:Image
  15. Method New()
  16. ClearColor=Color.Black
  17. _floor=Image.LoadBump( "asset::Slate Tiles II_D.png","asset::Slate Tiles II_N.png","asset::Slate Tiles II_S.png",.5,True )
  18. _light=Image.LoadLight( "asset::pointlight_light.png" )
  19. _light.Handle=New Vec2f( .5 )
  20. _light.Scale=New Vec2f( 3 )
  21. _logo=Image.Load( "asset::Monkey2-logo-48.png" )
  22. _logo.Handle=New Vec2f( .5 )
  23. _logo.ShadowCaster=New ShadowCaster( _logo.Width/2,20 )
  24. End
  25. Method OnRender( canvas:Canvas ) Override
  26. App.RequestRender()
  27. canvas.AmbientLight=Color.DarkGrey
  28. canvas.BeginLighting()
  29. canvas.AddLight( _light,Mouse.X,Mouse.Y )
  30. For Local x:=0 Until Width Step _floor.Width
  31. For Local y:=0 Until Height Step _floor.Height
  32. canvas.DrawImage( _floor,x,y )
  33. Next
  34. Next
  35. For Local an:=0.0 Until TwoPi Step TwoPi/8.0
  36. canvas.DrawImage( _logo,Width/2+Cos( an ) * Width/4,Height/2 + Sin( an ) * Height/4 )
  37. Next
  38. canvas.EndLighting()
  39. canvas.DrawText( App.FPS,Width/2,0,.5,0 )
  40. End
  41. End
  42. Function Main()
  43. New AppInstance
  44. New MyWindow
  45. App.Run()
  46. End