[][src]Module rmicrobit::graphics::scrolling

Support for scrolling sequences of 5×5 images horizontally.

Each kind of scrolling sequence is represented by a type implementing Animate (for controlling the sequence) and Render (for displaying it).

To create a new kind of scrolling sequence, make a new implementation of Scrollable.

The ScrollingImages implementation can be used for static slices of any type implementing Render.

See scrolling_text for scrolling text strings.

Example

This example is not tested
use rmicrobit::prelude::*;
use rmicrobit::display::{MicrobitDisplay, MicrobitFrame};
use rmicrobit::graphics::scrolling::ScrollingImages;
const BLANK: BitImage = BitImage::blank();
const HEART: BitImage = BitImage::new(&[
    [0, 1, 0, 1, 0],
    [1, 0, 1, 0, 1],
    [1, 0, 0, 0, 1],
    [0, 1, 0, 1, 0],
    [0, 0, 1, 0, 0],
]);
let mut display = MicrobitDisplay::new(...);
let mut scroller = ScrollingImages::default();
let frame = MicrobitFrame::default();
scroller.set_images(&[&HEART, &BLANK, &HEART]);
while !scroller.is_finished() {
    // every 50ms or so
    scroller.tick();
    frame.set(scroller);
    display.set_frame(frame);
}

See examples/scroll_images.rs for a complete example.

Structs

ScrollingImages

A Scrollable displaying a static slice of arbitrary images.

ScrollingState

Data needed to record the state of a scrolling animation.

Traits

Animate

The state of an animation.

Scrollable

A horizontally scrolling sequence of 5×5 images.