changed vertical scroller as per wololo's suggestion. Scroll speed is a function of the

dt value gathered from Update() instead of ticks.
This commit is contained in:
techdragon.nguyen@gmail.com
2010-11-25 16:39:22 +00:00
parent 22b743ccdf
commit 29805852c8
2 changed files with 14 additions and 10 deletions
+3 -2
View File
@@ -41,10 +41,11 @@ private:
size_t mNbItemsShown;
bool mScrollerInitialized;
float mHeight; // maximum height availble for display
int marginX;
int marginY; // margin used to allow text to scroll off screen without
int mMarginX;
int mMarginY; // margin used to allow text to scroll off screen without
// affecting look and feel. Should be enough
// for at least one line of text ( marginY)
float mVerticalScrollSpeed;
protected:
string wordWrap(string sentence, float width);
+11 -8
View File
@@ -90,9 +90,9 @@ TextScroller( fontId, x, y, width, scrollSpeed)
{
mHeight = height;
mNbItemsShown = numItemsShown;
marginX = 0;
marginY = 215;
mVerticalScrollSpeed = 10.0f;
mMarginX = 0;
mMarginY = 215;
mScrollerInitialized = false;
}
@@ -102,13 +102,16 @@ void VerticalTextScroller::Update(float dt)
if (!strings.size()) return;
WFont * mFont = resources.GetWFont(fontId);
ostringstream scrollerText;
if ( mScrollerInitialized && timer % 10 == 0 )
// update the veritcal scrolling
if ( mScrollerInitialized )
{
mY -= 1;
if ( mY < marginY )
mY = marginY + 20;
mY -= mVerticalScrollSpeed * dt;
if ( mY < mMarginY )
mY = mMarginY + 20;
}
// update the text
if (timer == 0)
{
mScrollerInitialized = false;
@@ -122,7 +125,7 @@ void VerticalTextScroller::Update(float dt)
if (currentId >= strings.size())
currentId = 0;
mText = wordWrap(scrollerText.str(), mWidth);
mY = marginY + 20;
mY = mMarginY + 20;
}
timer = ++timer % ((int) mScrollSpeed);