Пример #1
0
        protected void ScrollMessage(string message, int delayMS = 50, ScrollMessageStop stopFunction = null) {
            if (stopFunction == null) {
                stopFunction = DefaultScrollMessageStop;
            }

            var charSet = new CharSet();
            var splashScreen = charSet.StringToBitmap(message);
            var exit = false;

            ResetButtonClicks();

            while (!(exit)) {
                var x = 0;
                for (; x < splashScreen.Width; x++) {
                    Hardware.Matrix.Display(splashScreen.GetFrame(x, 0));
                    if (exit = stopFunction()) {
                        break;
                    }
                    Thread.Sleep(delayMS);
                }
                for (; x != 0; x--) {
                    if (exit = stopFunction()) {
                        break;
                    }
                    Hardware.Matrix.Display(splashScreen.GetFrame(x, 0));
                    Thread.Sleep(delayMS);
                }
            }
        }
Пример #2
0
        public void DisplaySplashScreen() {
            var charSet = new CharSet(); 
            var splashScreen = charSet.StringToBitmap("  2 paddles and a ball");

            _leftButtonClicked = false;
            _rightButtonClicked = false;

            while (!(_leftButtonClicked || _rightButtonClicked)) {
                var x = 0;
                for (; x < splashScreen.Width; x++) {
                    Hardware.Matrix.Display(splashScreen.GetFrame(x, 0));
                    if (_leftButtonClicked || _rightButtonClicked) {
                        break;
                    }
                    Thread.Sleep(50);
                }
                for (; x != 0; x--) {
                    if (_leftButtonClicked || _rightButtonClicked) {
                        break;
                    }
                    Hardware.Matrix.Display(splashScreen.GetFrame(x, 0));
                    Thread.Sleep(50);
                }
            }
        }
Пример #3
0
        public static void DisplayMarquee(string text, byte redBackground, byte greenBackground, byte blueBackground, byte redText, byte greenText, byte blueText) {
            if (_marqueeTextChanged) {
                _marqueeTextChanged = false;
                var charSet = new CharSet();
                var marqueePixelWidth = text.Length * 8;
                var marquee = strip.BuildMarquee(text, charSet, redBackground, greenBackground, blueBackground, redText, greenText, blueText);

                var x = 0;
                for (; x < marqueePixelWidth - strip.Width; x++) {
                    strip.Copy(marquee, x, 0, strip.Width, strip.Height, marqueePixelWidth, strip.Height);
                    strip.Refresh();
                }
                for (; x >= 0; x--) {
                    strip.Copy(marquee, x, 0, strip.Width, strip.Height, marqueePixelWidth, strip.Height);
                    strip.Refresh();
                }
            }
        }
Пример #4
0
 public byte[] BuildMarquee(string text, CharSet charSet, byte redBackground, byte greenBackground, byte blueBackground, byte redText, byte greenText, byte blueText) {
     var tempChar = new byte[8];
     var textColor = new byte[3];
     var backgroundColor = new byte[3];
     var marquee = new byte[text.Length * 8 * AdaFruitLPD8806.BytesPerPixel * Height];
     var lineLengthInBytes = text.Length * 8 * AdaFruitLPD8806.BytesPerPixel;
     textColor[0] = (byte)(greenText | 0x80);
     textColor[1] = (byte)(redText | 0x80);
     textColor[2] = (byte)(blueText | 0x80);
     backgroundColor[0] = (byte)(greenBackground | 0x80);
     backgroundColor[1] = (byte)(redBackground | 0x80);
     backgroundColor[2] = (byte)(blueBackground | 0x80);
     var index = 0;
     foreach (char c in text) {
         charSet.CopyBitmapChar(c, tempChar, 0, 1);
         BuildMarqueeCharacter(index++, lineLengthInBytes, marquee, tempChar, textColor, backgroundColor);
     }
     return marquee;
 }