sprite.monkey2 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. Namespace mojo3d
  2. #rem monkeydoc SpriteMode enumeration.
  3. | LightType | Description
  4. |:--------------|:-----------
  5. | `Billboard` | Sprite always faces the camera, eg: like a lens flare.
  6. | `Upright` | Sprite faces the camera but remains upright, eg: like a tree.
  7. #end
  8. Enum SpriteMode
  9. Billboard=1
  10. Upright=2
  11. End
  12. #rem monkeydoc The Sprite class.
  13. #end
  14. Class Sprite Extends Renderable
  15. #rem monkeydoc Creates a new sprite.
  16. #end
  17. Method New( parent:Entity=Null )
  18. Super.New( parent )
  19. Name="Sprite"
  20. AddInstance()
  21. Visible=True
  22. End
  23. Method New( material:Material,parent:Entity=Null )
  24. Super.New( parent )
  25. Name="Sprite"
  26. Material=material
  27. AddInstance( New Variant[]( material,parent ) )
  28. Visible=True
  29. End
  30. Method New( sprite:Sprite,parent:Entity )
  31. Super.New( sprite,parent )
  32. _material=sprite._material
  33. _handle=sprite._handle
  34. _mode=sprite._mode
  35. AddInstance( sprite )
  36. End
  37. #rem monkeydoc Copies the sprite.
  38. #end
  39. Method Copy:Sprite( parent:Entity=Null ) Override
  40. Local copy:=New Sprite( Self,parent )
  41. CopyTo( copy )
  42. Return copy
  43. End
  44. #rem monkeydoc Material used to render the sprite.
  45. This must currently be an instance of a SpriteMaterial.
  46. #end
  47. [jsonify=1]
  48. Property Material:Material()
  49. Return _material
  50. Setter( material:Material )
  51. _material=material
  52. End
  53. #rem monkeydoc Rect within texture to draw.
  54. #end
  55. [jsonify=1]
  56. Property TextureRect:Rectf()
  57. Return _textureRect
  58. Setter( textureRect:Rectf )
  59. _textureRect=textureRect
  60. End
  61. #rem monkeydoc Sprite handle.
  62. Defaults to 0.5,0.5.
  63. #end
  64. [jsonify=1]
  65. Property Handle:Vec2f()
  66. Return _handle
  67. Setter( handle:Vec2f )
  68. _handle=handle
  69. End
  70. #rem monkeydoc Sprite mode.
  71. Defaults to SpriteMode.Billboard.
  72. #end
  73. [jsonify=1]
  74. Property Mode:SpriteMode()
  75. Return _mode
  76. Setter( mode:SpriteMode )
  77. _mode=mode
  78. End
  79. Protected
  80. Method OnRender( rq:RenderQueue ) Override
  81. rq.AddSpriteOp( Self )
  82. End
  83. Private
  84. Field _material:Material
  85. Field _textureRect:=New Rectf( 0,0,1,1 )
  86. Field _handle:Vec2f=New Vec2f( .5,.5 )
  87. Field _mode:SpriteMode=Null
  88. End