mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
c09f0a8075
Signed-off-by: Ron Evans <ron@hybridgroup.com>
60 lines
935 B
Go
60 lines
935 B
Go
package main
|
|
|
|
import (
|
|
"image/color"
|
|
"math/rand"
|
|
"time"
|
|
|
|
"tinygo.org/x/drivers/microbitmatrix"
|
|
)
|
|
|
|
var display microbitmatrix.Device
|
|
|
|
func main() {
|
|
display = microbitmatrix.New()
|
|
display.Configure(microbitmatrix.Config{})
|
|
|
|
display.ClearDisplay()
|
|
|
|
x := int16(1)
|
|
y := int16(2)
|
|
deltaX := int16(1)
|
|
deltaY := int16(1)
|
|
then := time.Now()
|
|
c := color.RGBA{255, 255, 255, 255}
|
|
|
|
for {
|
|
if time.Since(then).Nanoseconds() > 80000000 {
|
|
then = time.Now()
|
|
|
|
pixel := display.GetPixel(x, y)
|
|
if pixel {
|
|
display.ClearDisplay()
|
|
x = 1 + int16(rand.Int31n(3))
|
|
y = 1 + int16(rand.Int31n(3))
|
|
deltaX = 1
|
|
deltaY = 1
|
|
if rand.Int31n(2) == 0 {
|
|
deltaX = -1
|
|
}
|
|
if rand.Int31n(2) == 0 {
|
|
deltaY = -1
|
|
}
|
|
}
|
|
display.SetPixel(x, y, c)
|
|
|
|
x += deltaX
|
|
y += deltaY
|
|
|
|
if x == 0 || x == 4 {
|
|
deltaX = -deltaX
|
|
}
|
|
|
|
if y == 0 || y == 4 {
|
|
deltaY = -deltaY
|
|
}
|
|
}
|
|
display.Display()
|
|
}
|
|
}
|