effects.d 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. module ui.effects;
  2. import raylib;
  3. import std.stdio;
  4. import variables;
  5. import std.string;
  6. import system.abstraction;
  7. import std.file;
  8. void fadeEffect(float alpha, bool fadeIn, void delegate(float alpha) renderer)
  9. {
  10. const float FadeIncrement = 0.02f;
  11. while (fadeIn ? alpha < 2.0f : alpha > 0.0f)
  12. {
  13. alpha += fadeIn ? FadeIncrement : -FadeIncrement;
  14. BeginDrawing();
  15. ClearBackground(Colors.BLACK);
  16. renderer(alpha);
  17. EndDrawing();
  18. }
  19. }
  20. void renderText(float alpha, immutable(char)* text)
  21. {
  22. DrawTextEx(textFont, text,
  23. Vector2(GetScreenWidth() / 2 - MeasureText(text, 40) / 2,
  24. GetScreenHeight() / 2), 40, 0, Fade(Colors.WHITE, alpha)
  25. );
  26. }
  27. void helloScreen()
  28. {
  29. debug
  30. {
  31. bool play = false;
  32. debugWriteln("hello screen showing");
  33. if (play == false) {
  34. videoFinished = true;
  35. }
  36. } else {
  37. fadeEffect(0.0f, true, (float alpha) {
  38. renderText(alpha, "powered by\n\nHimmel Engine");
  39. });
  40. fadeEffect(2.0f, false, (float alpha) {
  41. renderText(alpha, "powered by\n\nHimmel Engine");
  42. });
  43. /*
  44. fadeEffect(0.0f, true, (float alpha) {
  45. renderLogo(alpha, "atlus_logo.png".toStringz, true);
  46. });
  47. fadeEffect(fadeAlpha, false, (float alpha) {
  48. renderLogo(alpha, "atlus_logo.png".toStringz, true);
  49. });
  50. */
  51. // Play Opening Video
  52. }
  53. }