Skip to content

Commit

Permalink
Showimage (microsoft#351)
Browse files Browse the repository at this point in the history
* support for interval in showImage, showFrame

* added default arg to showFrame
  • Loading branch information
pelikhan authored Feb 4, 2017
1 parent 638e1d3 commit 49ecac6
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 13 deletions.
10 changes: 5 additions & 5 deletions libs/core/images.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ namespace ImageMethods {
*/
//% help=images/show-image weight=80 blockNamespace=images
//% blockId=device_show_image_offset block="show image %sprite|at offset %offset" blockGap=8
//% parts="ledmatrix"
void showImage(Image sprite, int xOffset) {
uBit.display.print(MicroBitImage(sprite), -xOffset, 0, 0);
//% parts="ledmatrix" async
void showImage(Image sprite, int xOffset, int interval = 400) {
uBit.display.print(MicroBitImage(sprite), -xOffset, 0, 0, interval);
}

/**
Expand Down Expand Up @@ -150,7 +150,7 @@ namespace ImageMethods {
*/
//% weight=70 help=images/show-frame
//% parts="ledmatrix"
void showFrame(Image i, int frame) {
showImage(i, frame * 5);
void showFrame(Image i, int frame, int interval = 400) {
showImage(i, frame * 5, interval);
}
}
8 changes: 4 additions & 4 deletions libs/core/shims.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ declare interface Image {
*/
//% help=images/show-image weight=80 blockNamespace=images
//% blockId=device_show_image_offset block="show image %sprite|at offset %offset" blockGap=8
//% parts="ledmatrix" shim=ImageMethods::showImage
showImage(xOffset: number): void;
//% parts="ledmatrix" async interval.defl=400 shim=ImageMethods::showImage
showImage(xOffset: number, interval?: number): void;

/**
* Draws the ``index``-th frame of the image on the screen.
Expand Down Expand Up @@ -118,8 +118,8 @@ declare interface Image {
* @param frame TODO
*/
//% weight=70 help=images/show-frame
//% parts="ledmatrix" shim=ImageMethods::showFrame
showFrame(frame: number): void;
//% parts="ledmatrix" interval.defl=400 shim=ImageMethods::showFrame
showFrame(frame: number, interval?: number): void;
}


Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pxt-microbit",
"version": "0.7.55",
"version": "0.8.0",
"description": "micro:bit target for PXT",
"keywords": [
"JavaScript",
Expand Down
7 changes: 4 additions & 3 deletions sim/state/ledmatrix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,11 @@ namespace pxsim.images {
}

namespace pxsim.ImageMethods {
export function showImage(leds: Image, offset: number) {
export function showImage(leds: Image, offset: number, interval: number) {
pxtrt.nullCheck(leds)
leds.copyTo(offset, 5, board().ledMatrixState.image, 0)
runtime.queueDisplayUpdate()
basic.pause(interval);
}

export function plotImage(leds: Image, offset: number): void {
Expand All @@ -155,8 +156,8 @@ namespace pxsim.ImageMethods {
ImageMethods.plotImage(leds, frame * Image.height);
}

export function showFrame(leds: Image, frame: number) {
ImageMethods.showImage(leds, frame * Image.height);
export function showFrame(leds: Image, frame: number, interval: number) {
ImageMethods.showImage(leds, frame * Image.height, interval);
}

export function pixel(leds: Image, x: number, y: number): number {
Expand Down

0 comments on commit 49ecac6

Please sign in to comment.