fFontColor.pas 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. unit fFontColor;
  2. interface
  3. uses
  4. Winapi.OpenGL,
  5. System.SysUtils,
  6. System.Classes,
  7. Vcl.Graphics,
  8. Vcl.Controls,
  9. Vcl.Forms,
  10. Vcl.Dialogs,
  11. GLS.SceneViewer,
  12. GLS.Scene,
  13. GLS.Objects,
  14. GLS.HUDObjects,
  15. GLS.VectorGeometry,
  16. GLS.VectorTypes,
  17. GLS.BitmapFont,
  18. GLS.Cadencer,
  19. GLS.TimeEventsMgr,
  20. GLS.GeomObjects,
  21. GLS.Coordinates,
  22. GLS.Utils,
  23. GLS.BaseClasses;
  24. type
  25. TFormFontColor = class(TForm)
  26. GLScene1: TGLScene;
  27. GLSceneViewer1: TGLSceneViewer;
  28. BitmapFont: TGLBitmapFont;
  29. GLCamera1: TGLCamera;
  30. HUDText1: TGLHUDText;
  31. GLLightSource1: TGLLightSource;
  32. Teapot1: TGLTeapot;
  33. GLTimeEventsMGR1: TGLTimeEventsMGR;
  34. GLCadencer1: TGLCadencer;
  35. HUDText2: TGLHUDText;
  36. HUDText3: TGLHUDText;
  37. HUDText4: TGLHUDText;
  38. procedure GLTimeEventsMGR1Events0Event(event: TTimeEvent);
  39. procedure GLTimeEventsMGR1Events1Event(event: TTimeEvent);
  40. procedure GLTimeEventsMGR1Events2Event(event: TTimeEvent);
  41. procedure FormCreate(Sender: TObject);
  42. private
  43. public
  44. end;
  45. var
  46. FormFontColor: TFormFontColor;
  47. const FadeOutMax = 100;
  48. FadeInMax = 100;
  49. OverallTrans = 0.7;
  50. implementation
  51. {$R *.dfm}
  52. var
  53. FadeOutCount : integer;
  54. FadeInCount : integer;
  55. OriginalColor : TVector4f;
  56. procedure TFormFontColor.FormCreate(Sender: TObject);
  57. begin
  58. SetGLSceneMediaDir();
  59. BitmapFont.Glyphs.LoadFromFile('toonfont.bmp');
  60. end;
  61. procedure TFormFontColor.GLTimeEventsMGR1Events0Event(event: TTimeEvent);
  62. begin
  63. if FadeOutCount < 0 then exit;
  64. HUDText1.ModulateColor.Color:=VectorMake(1, 1, 1, (FadeOutCount/FadeOutMax)*OverallTrans);
  65. dec(FadeOutCount);
  66. end;
  67. procedure TFormFontColor.GLTimeEventsMGR1Events1Event(event: TTimeEvent);
  68. begin
  69. FadeOutCount:=FadeOutMax;
  70. FadeInCount:=0;
  71. OriginalColor:=HUDText2.ModulateColor.Color;
  72. HUDText1.ModulateColor.Color:=VectorMake(1, 1, 1, (FadeOutCount/FadeOutMax)*OverallTrans);
  73. HUDText2.ModulateColor.Color:=VectorMake(1, 1, 1, 0);
  74. end;
  75. procedure TFormFontColor.GLTimeEventsMGR1Events2Event(event: TTimeEvent);
  76. var
  77. NewColor : TVector4f;
  78. begin
  79. if FadeInCount >= FadeInMax then exit;
  80. NewColor:=VectorScale(OriginalColor, FadeInCount/FadeInMax);
  81. HUDText2.ModulateColor.Color:=NewColor;
  82. Inc(FadeInCount);
  83. end;
  84. end.