Merge pull request #77 from lancaster-university/scroll-behaviour-fix

microbit: patch for animation/scroll behaviour for images
This commit is contained in:
James Devine 2016-01-14 22:14:16 +00:00
commit 5a10616b70
1 changed files with 9 additions and 3 deletions

View File

@ -294,7 +294,7 @@ void MicroBitDisplay::updateScrollImage()
{
image.clear();
if ((image.paste(scrollingImage, scrollingImagePosition, 0, 0) == 0) && scrollingImageRendered)
if (((image.paste(scrollingImage, scrollingImagePosition, 0, 0) == 0) && scrollingImageRendered) || scrollingImageStride == 0)
{
animationMode = ANIMATION_MODE_NONE;
this->sendAnimationCompleteEvent();
@ -326,6 +326,12 @@ void MicroBitDisplay::updateAnimateImage()
image.paste(scrollingImage, scrollingImagePosition, 0, 0);
if(scrollingImageStride == 0)
{
animationMode = ANIMATION_MODE_NONE;
this->sendAnimationCompleteEvent();
}
scrollingImageRendered = true;
scrollingImagePosition += scrollingImageStride;
@ -662,7 +668,7 @@ int MicroBitDisplay::scrollAsync(MicroBitImage image, int delay, int stride)
scrollingImage = image;
scrollingImageRendered = false;
animationDelay = delay;
animationDelay = stride == 0 ? 0 : delay;
animationTick = 0;
animationMode = ANIMATION_MODE_SCROLL_IMAGE;
}
@ -794,7 +800,7 @@ int MicroBitDisplay::animateAsync(MicroBitImage image, int delay, int stride, in
scrollingImage = image;
scrollingImageRendered = false;
animationDelay = delay;
animationDelay = stride == 0 ? 0 : delay;
animationTick = delay-1;
animationMode = ANIMATION_MODE_ANIMATE_IMAGE;
}