WikiトップAugust Framework 2.0>AF2_tutorial12

August Framework 2.0 : チュートリアル 12 ~ 「エフェクト・コントロール」を使ってみる

記念すべき(?)10回目のチュートリアルでは、「エフェクト・コントロール」なるものを使ってみたいと思います。

  1. #include "mglaugust2.h"
  2. #define MESSAGE \
  3. "とある宇宙の果てに、おじいさんとおばあさんが居ました。 \n" \
  4. "おじいさんとおばあさんは空気が無くて死んでしまいました。"
  5. #define MSG_WAIT (2)
  6. class CMyFrame : public CAugustWindowFrame2
  7. {
  8. private:
  9. CAugustImage2 m_imgBack;
  10. CAugustImage2 m_imgWindow;
  11. CAugustText2 m_txtName;
  12. CAugustText2 m_txtMsg;
  13. int m_nCounter;
  14. public:
  15. // 初期化時に呼ばれる
  16. bool OnGraphicInitEnded()
  17. {
  18. RegistControl(&m_imgBack);
  19. RegistControl(&m_imgWindow);
  20. RegistControl(&m_txtName);
  21. RegistControl(&m_txtMsg);
  22. m_imgBack.Load("back.jpg");
  23. m_imgWindow.Load("window.bmp");
  24. m_imgWindow.SetAlpha(180);
  25. m_txtName.SetText("ナレーター");
  26. m_txtName.SetPos(40,285);
  27. m_txtName.SetFontSize(24);
  28. m_txtMsg.SetPos(45,350);
  29. m_txtMsg.SetFontSize(22);
  30. m_txtMsg.SetColor(AGHCOLOR_WHITE);
  31. m_nCounter = 0;
  32. return true;
  33. }
  34. // ウインドウ生成前に呼ばれる
  35. void OnCreateWindow(agh::CREATE_WINDOW_INFO *pWindowInfo){
  36. pWindowInfo->strWindowTitle = "おじいさんとおばあさんプログラム";
  37. }
  38. bool OnFrameDoUser()
  39. {
  40. if ( (m_nCounter/MSG_WAIT) <= (int)strlen(MESSAGE) ){
  41. m_nCounter++;
  42. if ( m_nCounter % (MSG_WAIT*2) == 0 )
  43. m_txtMsg.SetText(std::string(MESSAGE,(m_nCounter/MSG_WAIT)).c_str());
  44. }
  45. return true;
  46. }
  47. };
  48. // WinMain
  49. int APIENTRY WinMain(HINSTANCE hInstance,
  50. HINSTANCE hPrevInstance,
  51. LPSTR lpCmdLine,
  52. int nCmdShow )
  53. {
  54. CMyFrame frame;
  55. frame.Start();
  56. return 0;
  57. }