You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds print(), printcenter() and showdataview() blocks to print text and visualize data (#29)
* add print and dataview blocks, add ger localization
* make all blocks english, improve dataview block, translation fixes, add calliope mini in description, remove radio and microphone from dependencies
* steamline js function call to screen().showDataView(..), update documentation in readme
* Update README.md
There are three functions for drawing text onto a bitmap (including the screen):
218
+
219
+
-`print(text, x, y, color?, font?)` — prints text starting at the given (x, y) coordinate.
220
+
-`printCenter(text, y, color?, font?)` — prints text horizontally centered at the given y coordinate.
221
+
-`showDataView(headline, label1?, value1?, label2?, value2?, label3?, value3?, color?, backgroundColor?, offset?, font?)` — displays a headline and up to three label/value pairs in a two-column layout, useful for showing sensor data or statistics. Labels or headlines without any string will not be printed. Using offset and a transparent background color, several calls of `showDataView(...)` can be combined to show 6 or more parameters in total.
222
+
223
+
Here are examples in TypeScript using the `screen()` bitmap:
224
+
225
+
```ts
226
+
// 1) print — draw text at a specific position
227
+
screen().print("Score: 123", 4, 4, 1) // x=4, y=4, color index 1
228
+
229
+
// 2) printCenter — draw text centered horizontally
230
+
screen().printCenter("Game Over", 50, 2) // centered at y=50, color index 2
231
+
232
+
// 3) showDataView — display a headline and data pairs
These helpers use built-in bitmapped fonts. You can explicitly pass a font (such as `bitmaps.font8` or `bitmaps.font12`) to control text size.
237
+
238
+
210
239
### Bitmap
211
240
212
241
Let's dig into bitmaps, which you can create yourself (the screen is represented by a bitmap, as we have seen already). A bitmap is some number of rows and columns of color pixels that make up rectangular picture. A _pixel_ is a single point of color inside the bitmap. A bitmap has a fixed height (number of rows) and width (number of columns). When a bitmap is declared, or created, the height and width are specified either by the _layout_ of the bitmap or as parameters to its `create` method.
"Bitmap.clone": "Gibt eine Kopie der aktuellen Bitmap zurück",
3
+
"Bitmap.drawBitmap": "Zeichnet die angegebene Bitmap auf die aktuelle Bitmap",
4
+
"Bitmap.drawCircle": "Zeichnet einen leeren Kreis",
5
+
"Bitmap.drawCircle|param|c": "Die Farbe zum Zeichnen des Kreises",
6
+
"Bitmap.drawCircle|param|cx": "Die Mittelpunkt-X-Koordinate des Kreises",
7
+
"Bitmap.drawCircle|param|cy": "Die Mittelpunkt-Y-Koordinate des Kreises",
8
+
"Bitmap.drawCircle|param|r": "Der Radius des Kreises",
9
+
"Bitmap.drawLine": "Zeichnet eine Linie",
10
+
"Bitmap.drawRect": "Zeichnet ein leeres Rechteck",
11
+
"Bitmap.drawTransparentBitmap": "Zeichnet die angegebene Bitmap mit transparentem Hintergrund auf die aktuelle Bitmap",
12
+
"Bitmap.equals": "Gibt wahr zurück, wenn die angegebene Bitmap mit dieser Bitmap übereinstimmt, ansonsten falsch.",
13
+
"Bitmap.fill": "Füllt die gesamte Bitmap mit einer bestimmten Farbe",
14
+
"Bitmap.fillCircle": "Füllt einen Kreis",
15
+
"Bitmap.fillCircle|param|c": "Die Farbe zum Zeichnen des Kreises",
16
+
"Bitmap.fillCircle|param|cx": "Die Mittelpunkt-X-Koordinate des Kreises",
17
+
"Bitmap.fillCircle|param|cy": "Die Mittelpunkt-Y-Koordinate des Kreises",
18
+
"Bitmap.fillCircle|param|r": "Der Radius des Kreises",
19
+
"Bitmap.fillRect": "Füllt ein Rechteck",
20
+
"Bitmap.flipX": "Spiegelt die Pixel horizontal in der aktuellen Bitmap",
21
+
"Bitmap.flipY": "Spiegelt die Pixel vertikal in der aktuellen Bitmap",
22
+
"Bitmap.getPixel": "Liest eine Pixelfarbe aus",
23
+
"Bitmap.mapRect": "Ersetzt Farben in einem Rechteck",
24
+
"Bitmap.print": "Druckt Text auf die Bitmap an der angegebenen Position",
25
+
"Bitmap.print|param|text": "Der zu druckende Text",
26
+
"Bitmap.print|param|x": "Die X-Koordinate",
27
+
"Bitmap.print|param|y": "Die Y-Koordinate",
28
+
"Bitmap.print|param|color": "Die Textfarbe",
29
+
"Bitmap.print|param|font": "Die zu verwendende Schriftart",
30
+
"Bitmap.printCenter": "Druckt Text mittig auf die Bitmap",
31
+
"Bitmap.printCenter|param|text": "Der zu druckende Text",
32
+
"Bitmap.printCenter|param|y": "Die Y-Koordinate",
33
+
"Bitmap.printCenter|param|color": "Die Textfarbe",
34
+
"Bitmap.printCenter|param|font": "Die zu verwendende Schriftart",
35
+
"Bitmap.replace": "Ersetzt eine Farbe in einer Bitmap durch eine andere",
36
+
"Bitmap.scroll": "Jedes Pixel in der Bitmap wird um (dx,dy) verschoben",
37
+
"Bitmap.setPixel": "Setzt eine Pixelfarbe",
38
+
"bitmaps": "Bitmap-Manipulationsblöcke",
39
+
"bitmaps._bitmap": "Eine Bitmap",
40
+
"bitmaps._bitmap|param|bitmap": "die Bitmap",
41
+
"bitmaps.create": "Erstellt eine neue leere (transparente) Bitmap",
42
+
"bitmaps.height": "Gibt die Höhe einer Bitmap zurück",
43
+
"bitmaps.width": "Gibt die Breite einer Bitmap zurück",
44
+
"bmp": "Tagged Bitmap-Literal-Konverter",
45
+
"context.eventContext": "Ruft den aktuellen Ereigniskontext ab, falls vorhanden",
46
+
"context.onIdle": "Registriert eine Funktion, die ausgeführt wird, wenn das Gerät im Leerlauf ist",
47
+
"context.popEventContext": "Entfernt den aktuellen Ereigniskontext und stellt Handler wieder her, falls ein vorheriger Kontext vorhanden ist",
48
+
"context.pushEventContext": "Fügt einen neuen Ereigniskontext hinzu und löscht alle Handler",
49
+
"controller": "Zugriff auf Spielsteuerung",
50
+
"controller.Button.addEventListener": "Fügt einen Ereignishandler hinzu, der ausgelöst wird, wenn das angegebene Ereignis für diese Taste ausgelöst wird. Handler, die mit dieser Methode hinzugefügt werden,\nstehen nicht im Konflikt mit Ereignissen, die über onEvent hinzugefügt wurden. Derselbe Handler kann nicht mehrmals für dasselbe Ereignis hinzugefügt werden.",
51
+
"controller.Button.addEventListener|param|handler": "Der Code, der ausgeführt werden soll, wenn das Ereignis ausgelöst wird",
52
+
"controller.Button.isPressed": "Gibt an, ob die Taste gerade gedrückt ist",
53
+
"controller.Button.onEvent": "Führt Code aus, wenn eine Taste gedrückt, losgelassen oder gehalten wird",
54
+
"controller.Button.pauseUntil": "Pausiert, bis eine Taste gedrückt oder losgelassen wird",
55
+
"controller.Button.removeEventListener": "Entfernt einen mit addEventListener registrierten Ereignishandler",
56
+
"controller.Button.removeEventListener|param|handler": "Der zu entfernende Handler",
57
+
"controller.onShieldEvent": "Führt Code aus, wenn Shield abwesend/vorhanden ist",
58
+
"controller.pauseUntilAnyButtonIsPressed": "Pausiert das Programm, bis eine Taste gedrückt wird",
59
+
"controller.setRepeatDefault": "Konfiguriert das Timing des Tastenwiederholungsereignisses für alle Controller-Tasten",
60
+
"controller.setRepeatDefault|param|delay": "Anzahl der Millisekunden von dem Drücken der Taste bis zum Start des Wiederholungsereignisses, z.B.: 500",
61
+
"controller.setRepeatDefault|param|interval": "Minimale Anzahl von Millisekunden zwischen Aufrufen des Tastenwiederholungsereignisses, z.B.: 30",
62
+
"helpers.imageShowDataView": "Zeigt eine Datenansicht mit Überschrift und bis zu drei Namen-Werte-Paaren",
63
+
"helpers.imageShowDataView|param|img": "Die Bitmap, auf der gezeichnet werden soll",
64
+
"helpers.imageShowDataView|param|headline": "Die Überschrift",
65
+
"helpers.imageShowDataView|param|label1": "Das erste Label",
66
+
"helpers.imageShowDataView|param|value1": "Der erste Wert",
67
+
"helpers.imageShowDataView|param|label2": "Das zweite Label",
68
+
"helpers.imageShowDataView|param|value2": "Der zweite Wert",
0 commit comments