32 #define M_ANIMETED_TEXT_MAX_LINE 256
34 class _laIntroTextLine{
37 char strText[M_ANIMETED_TEXT_MAX_LINE];
44 fp->readUnsigned(&nEmotion);
45 fp->readText(strText);
52 std::vector<_laIntroTextLine> _vLines;
66 double _dFX_Slide_rangex;
67 double _dFX_Slide_rangey;
68 double _dFX_Slide_speedx;
69 double _dFX_Slide_speedy;
72 double _dFX_Ramble_rangex;
73 double _dFX_Ramble_rangey;
74 double _dFX_Ramble_speedx;
75 double _dFX_Ramble_speedy;
78 double _dFX_Chaos_arange;
89 ~fxAnimatedText(
void);
92 void parameters(
class laFont* pf,
93 double fsz = 15,
double line_spacing = 1.5,
94 laColor color = laColor(255,255,255),
double text_speed = 1.6,
unsigned align =
M_AC)
99 _dLineSpacing = line_spacing;
101 _ttLineAnim.parameters(text_speed);
104 double getFontSz() {
return _dFontSz; };
105 void fontSz(
double sz) { _dFontSz = sz; };
106 unsigned fontAlign() {
return _align; }
108 void enableSlideFX(M_BOOL enable = M_TRUE,
109 double rangex = 0,
double rangey = 0,
double speedx = 3,
double speedy = 3 )
112 _dFX_Slide_rangex = rangex;
113 _dFX_Slide_rangey = rangey;
114 _dFX_Slide_speedx = speedx;
115 _dFX_Slide_speedy = speedy;
118 void enableRambleFX(M_BOOL enable = M_TRUE,
119 double rangex = 5,
double rangey = 0,
double speedx = 0.3,
double speedy = 0.3 )
121 _bFX_Ramble = enable;
122 _dFX_Ramble_rangex = rangex;
123 _dFX_Ramble_rangey = rangey;
124 _dFX_Ramble_speedx = speedx;
125 _dFX_Ramble_speedy = speedy;
128 void enableChaosFX(M_BOOL enable = M_TRUE,
129 double ang_range = 3 )
132 _dFX_Chaos_arange = ang_range;
140 _nVisible = _vLines.size();
142 for(
unsigned i=0; i<_nVisible; i++) _vLines[i].dBias = 0;
149 for(
unsigned i=0; i<totalCount(); i++)
151 _vLines[i].dBias = 1;
152 _vLines[i].dRandBias = (rand()%1000)/1000.0;
158 if( visibleCount() < totalCount() )
return M_FALSE;
159 return _ttLineAnim.isElapsed();
163 unsigned currentEmotion() {
return _vLines[_nVisible-1].nEmotion; }
164 unsigned visibleCount() {
return _nVisible; }
165 unsigned totalCount() {
return _vLines.size(); }
167 double height() {
return totalCount() * ( _dFontSz * _dLineSpacing ); }
169 unsigned lmax=0, nmax=0;
171 for(
unsigned i=0; i<totalCount(); i++)
173 double l = strlen( _vLines[i].strText );
174 if( l > lmax ) { lmax = l; nmax=i; }
177 _pFont->ctlSize(_dFontSz);
178 return _pFont->lenght( _vLines[nmax].strText );
183 void replace(
char* strFind,
char* strFormat, ...);
186 void animate(laTimer &t);
Interface for loadable objects.
#define M_AC
Text align center.
Virtual interface for the Engine graphics renderer.