Merge pull request #77 from lancaster-university/scroll-behaviour-fix
microbit: patch for animation/scroll behaviour for images
This commit is contained in:
commit
5a10616b70
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue