Einführung
Yet Another JavaScript Framework
Bei jBB handelt es sich um ein Framework welches einen
vereinfachten Zugriff auf das Canvas-Element von HTML5 anbietet. Das
API ist an die beliebte Programmiersprache
Blitzbasic angelehnt.
Beispiel
$(document).ready(function()
{
Graphics("myCoolGame", Game, 60);
ClsColor(90, 128, 200);
SetColor(255, 0, 0);
});
Bevor man jBB Funktionen nutzen kann muss man sicher stellen dass das DOM fertig
geladen wurde. Noch sicherer ist es wenn man prüft ob das DOM mitsamt Inhalten
geladen wurde, weswegen ich in diesem Beispiel jQuery verwende um das sicher zu stellen.
Selbstverständlich kann man die Initialisierungsfunktion auch mit
<body onLoad="initGame();"> aufrufen, dann muss man
aber zur Laufzeit mit ImageLoaded() sicher stellen dass das
Bild geladen wurde und mit DrawImage() gezeichnet werden kann.Graphics() initialisiert das Framework. Es erwartet als Parameter die ID des Canvas, die Hauptfunktion des Spiels und die Bilder pro Sekunde mit denen das Spiel laufen soll. Danach wird noch die Löschfarbe und die aktuelle Zeichenfarbe festgelegt.
Damit dies alles geschehen kann muss irgendwo im HTML Body der Seite folgendes stehen:
<canvas id="myCoolGame" width="800" height="600"> Dein Browser ist ja mal sowas von letztes Jahrhundert, aber sowas von .... </canvas>Außerdem natürlich auch die Hauptfunktion die wir bei Graphics() angemeldet haben:
function Game()
{
Cls();
// Hier kommt die Action rein
Flip();
}
Bitte beachte dass der Browser nur "versucht" diese
Funktion mit den bei Graphics() angegebenen
Bildern pro Sekunde anzusteuern. Man kann natürlich nicht erwarten dass ein
100€ Smartphone dies schafft.
Zum Abschluss der Einführung nun noch den kompletten Quelltext des Beispiels:
<!DOCTYPE html>
<html>
<head>
<title>jBB Sample</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jBB.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
Graphics("myCoolGame", Game, 60);
ClsColor(90, 128, 200);
SetColor(255, 0, 0);
});
function Game()
{
Cls();
// Hier kommt die Action rein
Flip();
}
</script>
</head>
<body>
<canvas id="myCoolGame" width="800" height="600">
Dein Browser ist ja mal sowas von letztes Jahrhundert,
aber sowas von ....
</canvas>
</body>
</html>
Alpha(color)
Beschreibung
Gibt den Alpha-Anteil von color zurück.
Parameter
| color | Farbobjekt dessen Alpha-Anteil ermittelt werden soll |
Rückgabewert:
Alpha-Anteil von color
Backbuffer()
Beschreibung
Gibt ein Handle auf die Grafikdaten des Canvas zurück. Dieses
wird benötigt wenn man mittels WritePixel()
und ReadPixel() direkt auf die Pixel des
Canvas zugreifen möchte.
Parameter
Keine
Rückgabewert:
Ein Handle auf das Canvas welches dann den Funktionen
ReadPixel() und WritePixel() übergeben
werden kann.
Blue(color)
Beschreibung
Gibt den Blau-Anteil von color zurück.
Parameter
| color | Farbobjekt dessen Blau-Anteil ermittelt werden soll |
Rückgabewert:
Blau-Anteil von color
BobRange(bob, rangeName, firstFrame, lastFrame, frameSpeed)
Beschreibung
Erstellt eine neue Animationssequenz für den zuvor erzeugten Bob mit dem Namen
rangeName.
Parameter
| bob | Der mit CreateBob() erzeugte Bob. |
| rangeName | ein Name für die Animationssequenz. Bspw. "Walk" |
| firstFrame | Nummer des ersten Bildes der Animation |
| lastFrame | Nummer des letzten Bildes der Animation |
| frameSpeed | Geschwindigkeit der Animationssequenz in Bildern pro Sekunde |
Rückgabewert:
Keiner
Beispiel:
var anim;
var mainBob;
function init(){
[...]
// Bild laden
anim = LoadAnimImage("images/anim.png", 32, 32, 100);
// Basis-Bob
mainBob = CreateBob(anim, 0, 99);
// Animationssequenz mit dem Namen "walk" definieren
BobRange(mainBob, "walk", 0, 16, 30);
// Animationssequenz aktivieren
SetBobRange(mainBob, "walk");
// Animation starten
StartBob(mainBob);
[...]
}
function main(){
// automatisch animierten Bob zeichnen
DrawBob(mainBob, MouseX(), MouseY());
}
BobSpeed(bob, speed)
Beschreibung
Ändert die Animationsgeschwindigkeit des Bobs
Parameter
| bob | Der mit CreateBob() erzeugte Bob. |
| speed | Wartezeit zwischen zwei Frames der Animation in Millisekunden |
Rückgabewert:
Keiner
ClearList(list)
Beschreibung
Löscht eine Liste.
Parameter
| list | Liste die gelöscht werden soll |
Rückgabewert:
Keiner
ClearMap(map)
Beschreibung
Löscht eine Map.
Parameter
| map | Map die gelöscht werden soll |
Rückgabewert:
Keiner
Cls()
Beschreibung
Löscht das Canvas mit der, zuvor mittels
ClsColor() definierten, aktuellen Löschfarbe.
Parameter
Keine
Rückgabewert:
Keiner
ClsColor(r, g, b)
Beschreibung
Definiert die Farbe mit der die Funktion Cls()
das Canvas löschen soll.
Parameter
| r | Rotanteil der Farbe |
| g | Grünanteil der Farbe |
| b | Blauanteil der Farbe |
Rückgabewert:
Keiner
CreateBob(image, firstFrame, lastFrame, speed, looped)
Beschreibung
Diese Funktion erzeugt aus einem zuvor, per
LoadAnimImage(), geladenen Image ein automatisch animiertes Bildobjekt.
Es wird mit der Geschwindigkeit animiert die speed in
Millisekunden angibt.
Parameter
| image | ein per LoadAnimImage() geladenes Bild |
| firstFrame | Startframe der Animation |
| lastFrame | Endframe der Animation |
| speed | Zeit in Millisekunden zwischen zwei Frames |
| looped | True wenn die Animation im Loop abgespielt werden soll |
Rückgabewert:
Ein Handle auf den neuen Bob
CreateImage(width, height)
Beschreibung
Erstellt ein neues Image-Objekt welches mit
WritePixel() beschrieben werden kann.
Parameter
| width | Breite in Pixeln |
| height | Höhe in Pixeln |
Rückgabewert:
Ein Handle auf das neu erstellte Image-Objekt
Anmerkung:
Ein Image-Objekt ist etwas anderes als ein Image welches per
LoadImage() geladen wurde. Es können
ausschliesslich Image-Objekte mit ReadPixel()
und WritePixel() bearbeitet werden.
CreateList()
Beschreibung
Erzeugt eine neue Liste und gibt ein Handle darauf zurück
Parameter
Keiner
Rückgabewert:
Ein Handle auf die neu erzeugte Liste
Beispiel:
// Liste erstellen
var list = CreateList()
// ein paar Daten hinein schreiben
for(var i = 10; i <= 30; i+=10){
ListAddLast(list, "Eintrag " + i)
}
// Liste iterieren
var eintrag;
while(eintrag = NextItem(list)){
alert(eintrag);
}
CreateMap()
Beschreibung
Erzeugt ein neues assoziatives Array und gibt ein Handle darauf zurück
Parameter
Keiner
Rückgabewert:
Ein Handle auf die neu erzeugte Map
Beispiel:
function main(){
var map = CreateMap();
MapInsert(map, "Key 01", 1);
MapInsert(map, "Key 02", 2);
MapInsert(map, "Key 03", 3);
ResetMap(map);
var v;
while(v = MapNextItem(map)){
alert(v);
}
alert(MapGetValue(map, "Key 02"));
}
DeleteBobRange(bob, rangeName)
Beschreibung
Löscht die Animationssequenz rangeName.
Parameter
| bob | Der Bob aus dem eine Animationssequenz entfernt werden soll. | |
| rangeName | Der Name der zu löschenden Animationssequenz |
Rückgabewert:
Keiner
DebugLog(logtext)
Beschreibung
Gibt logtext in die JavaScript-Konsole aus
Parameter
| logtext | Text der in die Konsole geschrieben werden soll |
Rückgabewert:
Keiner
Desktop()
Beschreibung
Gibt ein Objekt vom Typ "tDesk" zurück. Dieses wird für
die Funktionen DesktopWidth() und
DesktopHeight() benötigt.
Parameter
Keine
Rückgabewert:
Ein Desktop-Objekt.
DesktopHeight()
Beschreibung
Gibt die Höhe des Anzeigebereiches des Browsers zurück.
Parameter
Keine
Rückgabewert:
Höhe des Anzeigebereiches des Browsers in Pixeln.
DesktopWidth()
Beschreibung
Gibt die Breite des Anzeigebereiches des Browsers zurück.
Parameter
Keine
Rückgabewert:
Breite des Anzeigebereiches des Browsers in Pixeln.
DrawBob(bob, x, y)
Beschreibung
Zeichnet einen Bob, der zuvor mittels
CreateBob() erzeugt wurde, an die Position
x, y.
Parameter
| bob | Der zu zeichnende Bob |
| x | X-Position an der der Bob ins Canvas gemalt werden soll |
| y | Y-Position an der der Bob ins Canvas gemalt werden soll |
Rückgabewert:
Keiner
DrawImage(image, x, y, frame)
Beschreibung
Zeichnet ein Image, welches zuvor per
LoadImage() geladen wurde in das Canvas.
Parameter
| image | Das Handle auf das zu zeichnende Image |
| x | X-Position an der das Bild ins Canvas gemalt werden soll |
| y | Y-Position an der das Bild ins Canvas gemalt werden soll |
| frame | Wurde das Bild mit LoadAnimImage() geladen, definiert dieser Parameter die Nummer des Tiles das man malen möchte. |
Rückgabewert:
Keiner
Anmerkung:
Mit DrawImage() können keine Image-Objekte gezeichnet werden die mittels
CreateImage() erstellt wurden.
DrawLine(x1, y1, x2, y2)
Beschreibung
Zeichnet eine Linie von der Position x1, y1 zur Position
x2, y2. Die Linie wird in der Farbe gezeichnet die zuvor
mittels SetColor() definiert wurde.
Parameter
| x1, y1 | Startkoordinate der Linie |
| x2, y2 | Zielkoordinate der Linie |
Rückgabewert:
Keiner
DrawRect(x, y, width, height, radius, solid)
Beschreibung
Zeichnet ein Rechteck an die Position x, y mit der Größe
width, height. Ist der Parameter "solid" gleich "True"
wird das Rechteck ausgefüllt gezeichnet. Die Farbe des Rechtecks
entspricht der die zuvor mittels SetColor()
definiert wurde.
"radius" gibt an obm und wenn ja, wie stark die Ecken des
Rechtecks gerundet werden sollen.
Parameter
| x, y | Koordinate der linken, oberen Ecke des Rechtecks |
| width, height | Breite und Höhe des Rechtecks |
| radius | Radius der Ecken wenn diese abgerundet werden sollen |
| solid | Ist "solid" = True wird das Rechteck ausgefüllt gezeichnet |
Rückgabewert:
Keiner
Anmerkung:
Derzeit können Rechtecke mit gerundeten Ecken weder mittels SetScale() skaliert oder
mit SetRotation() gedreht werden! Dies wird in einer späteren Version implementiert.
DrawOval(x, y, width, height, filled)
Beschreibung
Zeichnet ein Oval an die Position x, y mit der Größe
width, height. Ist der Parameter "filled" gleich "True"
wird das Oval ausgefüllt gezeichnet. Die Farbe des Ovals
entspricht der die zuvor mittels SetColor()
definiert wurde.
Parameter
| x, y | Koordinate der linken, oberen Ecke des Ovals |
| width, height | Breite und Höhe des Ovals |
| filled | Ist "filled" = True wird das Oval ausgefüllt gezeichnet |
Rückgabewert:
Keiner
DrawText(text, x, y)
Beschreibung
Schreibt den String text in der aktuellen Zeichenfarbe
an die Position x, y
Parameter
| text | Der String der ins Canvas gezeichnet werden soll |
| x, y | Die Koordinate an der der Text gezeichnet werden soll |
Rückgabewert:
Keiner
Flip()
Beschreibung
Flip() ist zurzeit eine leere Funktion. Das heißt dass sie
im Moment gar nichts tut.
Parameter
Keine
Rückgabewert:
Keiner
Cos(value)
Beschreibung
Gibt den Cosinus von value zurück.
Parameter
| value | der Wert zu dem Cosinus zurück gegeben werden soll. |
Rückgabewert:
Cosinus von value
Sin(value)
Beschreibung
Gibt den Sinus von value zurück.
Parameter
| value | der Wert zu dem Sinus zurück gegeben werden soll. |
Rückgabewert:
Sinus von value
ACos(value)
Beschreibung
Liefert den Arcuscosinus von value in der Einheit Bogenmaß (Radiant) zurück.
Achten Sie darauf, dass Sie sinnvolle Werte zwischen -1 und +1 übergeben.
Parameter
| value | der Wert zu dem der Arcuscosinus zurück gegeben werden soll. |
Rückgabewert:
Arcuscosinus von value
ASin(value)
Beschreibung
Liefert den Arcussinus von value in der Einheit Bogenmaß (Radiant) zurück.
Achten Sie darauf, dass Sie sinnvolle Werte zwischen -1 und +1 übergeben.
Parameter
| value | der Wert zu dem der Arcussinus zurück gegeben werden soll. |
Rückgabewert:
Arcussinus von value
Abs(value)
Beschreibung
Liefert in jedem Fall den positiven Wert der Zahl zurück. War dieser vorher negativ,
wird er positiv.
Parameter
| value | umzuwandelnder Wert |
Rückgabewert:
positiver Wert von value
Tan(value)
Beschreibung
Gibt den Tangens von value zurück
Parameter
| value | Wert zu dem der Tangens ermittelt werden soll |
Rückgabewert:
Tangens von value
ATan(value)
Beschreibung
Liefert den Arcustangens von value in der Einheit Bogenmaß (Radiant) zurück.
Parameter
| value | Wert zu dem der Arcustangens ermittelt werden soll |
Rückgabewert:
Arcustangens von value
Ceil(value)
Beschreibung
Liefert die nächsthöhere Ganzzahl von value zurück.
Wenn die übergebene Zahl eine Ganzzahl ist, bleibt sie unverändert.
Parameter
| value | aufzurundender Wert |
Rückgabewert:
nächsthöherer Wert von value
Sqr(value)
Beschreibung
Liefert die Quadratwurzel von value zurück.
Parameter
| value | Wert zu dem die Quadratwurzel ermittelt werden soll |
Rückgabewert:
Quadratwurzel von value
Exp(value)
Beschreibung
Liefert den Exponentialwert von value auf Basis der Eulerschen Konstanten zurück.
Parameter
| value | Wert zu dem der Exponentialwert ermittelt werden soll |
Rückgabewert:
Exponentialwert von value
Log(value)
Beschreibung
Liefert die Anwendung des natürlichen Logarithmus auf value zurück.
Achte darauf, dass Du sinnvolle Werte übergibst, die größer als 0 sind.
Parameter
| value | Wert auf den der natürliche Logarithmus angewendet werden soll. |
Rückgabewert:
Anwendung des natürlichen Logarithmus auf value
Floor(value)
Beschreibung
Liefert die nächste ganze Zahl, die kleiner oder gleich value ist.
Parameter
Keine
Rückgabewert:
| value | zu rundender Wert |
FlushBuffer(buffer)
Beschreibung
Beendet alle WritePixel() Aktionen und schreibt das
Ergebnis in den Buffer buffer.
Parameter
| buffer | Buffer der für die Aktion benutzt werden soll |
Rückgabewert:
Keiner
GetScaleX()
Beschreibung
Gibt die aktuelle globale X-Skalierung zurück.
Parameter
Keine
Rückgabewert:
Größe der X Skalierung
GetScaleY()
Beschreibung
Gibt die aktuelle globale Y-Skalierung zurück.
Parameter
Keine
Rückgabewert:
Größe der Y Skalierung
Graphics(canvasID, mainLoop, fps)
Beschreibung
Graphics() initialisiert die Engine.
Parameter
| canvasID | Die ID mit der das Canvas deklariert wurde | |
| mainLoop | Der Name der Hauptfunktion | Default = main |
| fps | die Bilder pro Sekunde mit der der Browser versuchen soll die Hauptfunktion anzufahren | Default = 30 |
Rückgabewert:
Keiner
Anmerkung:
Im HTML Dokument muss ein Canvas erstellt werden. Dieses erhält eine ID
(bspw. id="myCoolGame") welche der Funktion als erster Parameter
übergeben werden muss. Der Parameter FPS ist ein "Sollwert",
es ist nicht garantiert dass das Endgerät in der Lage ist diese Forderung
zu erfüllen. Der Parameter garantiert aber dass das Spiel auf besseren
Systemen keinesfalls schneller laufen wird.
Jedes jBB Programm benötigt eine Hauptfunktion in welcher sich der MainLoop
befindet. Der Name der Hauptfunktion wird als letzter Parameter übergeben.
GraphicsHeight()
Beschreibung
Gibt die Höhe des Canvas in Pixel zurück.
Parameter
Keine
Rückgabewert:
Höhe des Canvas in Pixel
GraphicsWidth()
Beschreibung
Gibt die Breite des Canvas in Pixel zurück.
Parameter
Keine
Rückgabewert:
Breite des Canvas in Pixel
Green(color)
Beschreibung
Gibt den Grün-Anteil von color zurück.
Parameter
| color | Farbobjekt dessen Grün-Anteil ermittelt werden soll |
Rückgabewert:
Grün-Anteilvon color
ImageHeight(image)
Beschreibung
Gibt die Höhe des Bildes in Pixel zurück
Parameter
| image | Das Bild dessen Höhe ermittelt werden soll |
Rückgabewert:
Höhe des Bildes
ImageLoaded(image)
Beschreibung
Gibt True zurück wenn das Bild image in das DOM
geladen wurde, ansonsten False.
Parameter
| image | Das Bild für das ermittelt werden soll ob es fertig geladen wurde. |
Rückgabewert:
True wenn das Bild geladen wurde, ansonsten False.
ImageRectOverlap(image, x, y, rectX, rectY, rectWidth, rectHeight)
Beschreibung
Prüft ob das Bild image mit einem Rechteck kollidiert. Dabei definieren
rectX und rectY die linke obere Ecke des Rechtecks und rectWidth
und rectHeight die Größe des Rechtecks.
Die Funktion gibt true zurück wenn das Bild mit dem Rechteck kollidiert,
ansonsten false.
Parameter
| image | Das Bild das auf Kollision getestet werden soll | |
| x, y | Die Koordinate an der das Bild gerade gezeichnet wird | |
| rectX, rectY | die linke, obere Ecke des Rechtecks | |
| rectWidth, rectHeight | die Größe des Rechtecks |
Rückgabewert:
True wenn das Bild mit dem Rechteck kollidiert, ansonsten False.
RectsOverlap(rect1x, rect1y, rect1width, rect1height, rect2x, rect2y, rect2width, rect2height)
Beschreibung
Prüft ob zwei Rechtecke miteinander kollidieren.
Parameter
| rect1x, rect1y | linke, obere Ecke des ersten Rechtecks | |
| rect1width, rect1height | Größe des ersten Rechtecks | |
| rect2x, rect2y | linke, obere Ecke des zweiten Rechtecks | |
| rect2width, rect2height | Größe des zweiten Rechtecks |
Rückgabewert:
True wenn die beiden Rechtecke kollidieren, ansonsten False.
ImageWidth(image)
Beschreibung
Gibt die Breite des Bildes in Pixel zurück
Parameter
| image | Das Bild dessen Breite ermittelt werden soll |
Rückgabewert:
Breite des Bildes
Include(source)
Beschreibung
Inkludiert eine JavaScript Datei in das aktuelle Programm
Parameter
| source | Name des JavaScript Programms das eingebunden werden soll |
Rückgabewert:
Keiner
Dim2D(cols, rows)
Beschreibung
Erzeugt ein zweidimensionales Array
Parameter
| cols | Anzahl der Spalten im Array |
| rows | Anzahl der Zeilen im Array |
Rückgabewert:
zweidimensionales Array
Beispiel:
var myArray = Dim2D(10, 10);
for(var x = 0; x < 10; x++){
for(var y = 0; y < 10; y++){
myArray[x][y] = Rand(0, 9);
}
}
KeyDown(key)
Beschreibung
Gibt zurück ob die Taste key gedrückt ist.
Parameter
| key | Der Keycode der geprüft werden soll |
Rückgabewert:
True wenn die Taste key gerade gedrückt
wird, ansonsten False.
KeyHit(key)
Beschreibung
Gibt zurück ob die Taste key losgelassen wurde.
Parameter
| key | Der Keycode der geprüft werden soll |
Rückgabewert:
True wenn die Taste key losgelassen wurde,
ansonsten False.
ListAddFirst(list, val)
Beschreibung
Hängt den Wert val an den Anfang der Liste List
Parameter
| list | die mit CreateList() erzeugte Liste |
| val | Der Wert der an den Anfang der Liste gehangen werden soll |
Rückgabewert:
Keiner
Beispiel:
// Liste erstellen
var list = CreateList()
// ein paar Daten hinein schreiben
for(var i = 10; i <= 30; i+=10){
ListAddFirst(list, "Eintrag " + i)
}
// Liste iterieren
var eintrag;
while(eintrag = NextItem(list)){
alert(eintrag);
}
ListAddLast(list, val)
Beschreibung
Hängt den Wert val an das Ende der Liste List
Parameter
| list | die mit CreateList() erzeugte Liste |
| val | Der Wert der an das Ende der Liste gehangen werden soll |
Rückgabewert:
Keiner
Beispiel:
// Liste erstellen
var list = CreateList()
// ein paar Daten hinein schreiben
for(var i = 10; i <= 30; i+=10){
ListAddLast(list, "Eintrag " + i)
}
// Liste iterieren
var eintrag;
while(eintrag = NextItem(list)){
alert(eintrag);
}
ListFlip(list)
Beschreibung
Invertiert die Reihenfolge der Liste
Parameter
| list | Die Liste die invertiert werden soll |
Rückgabewert:
Keiner
Beispiel:
// Liste erstellen
var list = CreateList()
// ein paar Daten hinein schreiben
for(var i = 10; i <= 30; i+=10){
ListAddLast(list, "Eintrag " + i)
}
ListFlip(list);
// Liste iterieren
var eintrag;
while(eintrag = NextItem(list)){
alert(eintrag);
}
LoadAnimImage(imageFile, cellWidth, cellHeight, maxFrame)
Beschreibung
Lädt ein Bild, teilt es in Tiles und gibt ein Handle darauf zurück
Parameter
| imageFile | Pfad und Dateiname des zu ladenden Bildes |
| cellWidth | Breite der Tiles in Pixel |
| cellHeight | Höhe der Tiles in Pixel |
| maxFrame | Anzahl der Tiles im Image |
Rückgabewert:
Handle auf das geladene Image
Anmerkung:
LoadAnimImage() lädt nur Bilder die im Web üblich sind:
JPEG, PNG und (statisches) GIF. Man sollte Bilder vor der
Initialisierung durch Graphics() laden um sicher zu
gehen dass das Bild auch tatsächlich mit dem Beginn des Spiels verfügbar ist.
Die Zählung der Frames beginnt bei 0 und endet bei maxFrame - 1.
LoadFont(family, source, isBold, isItalic)
Beschreibung
Lädt eine Schriftdatei die dann mit SetFont()
genutzt werden kann.
Parameter
| family | Der Name des Font |
| source | Pfad zur Schriftdatei |
| isBold | True wenn der Font fett gezeichnet werden soll |
| isItalic | True wenn der Font schräggestellt gezeichnet werden soll. |
Rückgabewert:
Keiner
Anmerkung:
Safari stürzt hier noch spektakulär ab. An einem Fix wird gearbeitet.
LoadImage(imageFile)
Beschreibung
Lädt ein Bild und gibt ein Handle darauf zurück
Parameter
| imageFile | Pfad und Dateiname des zu ladenden Bildes |
Rückgabewert:
Handle auf das geladene Image
Anmerkung:
LoadImage() lädt nur Bilder die im Web üblich sind:
JPEG, PNG und (statisches) GIF. Man sollte Bilder vor der
Initialisierung durch Graphics() laden um sicher zu
gehen dass das Bild auch tatsächlich mit dem Beginn des Spiels verfügbar ist.
CanPlayMP3()
Beschreibung
Prüft ob der Browser des Benutzers MP3 Dateien abspielen kann
Parameter
Keine
Rückgabewert:
True wenn MP3s abgespielt werden können, ansonsten False.
Anmerkung:
Die "Original-Methode" des Audio-Elements liefert entweder nichts (Format kann nicht
abgespielt werden) oder ein "maybe" oder ein "probably". Es ist somit nicht
100% sicher dass der Browser das Format spielen kann wenn ein True geliefert wird.
CanPlayOGG()
Beschreibung
Prüft ob der Browser des Benutzers Vorbis OGG Dateien abspielen kann
Parameter
Keine
Rückgabewert:
True wenn OGGs abgespielt werden können, ansonsten False.
Anmerkung:
Die "Original-Methode" des Audio-Elements liefert entweder nichts (Format kann nicht
abgespielt werden) oder ein "maybe" oder ein "probably". Es ist somit nicht
100% sicher dass der Browser das Format spielen kann wenn ein True geliefert wird.
LoadSound(soundFile, loop)
Beschreibung
Lädt eine Sound-Datei und gibt ein Handle darauf zurück
Parameter
| soundFile | Pfad und Dateiname des zu ladenden Sounds |
| loop | True wenn der Sound in einer Schleife gespielt werden soll, ansonsten False |
Rückgabewert:
Handle auf den geladenen Sound
Anmerkung:
LoadSound() kann nur Sound-Dateien laden die der Ziel-Browser unterstützt.
jBB bietet hier die Funktionen CanPlayMP3() und
CanPlayOGG() an um herauszufinden ob die Sound-Datei gespielt werden kann
Man kann entweder direkt beim Laden der Datei angeben ob diese in einer Schleife (Loop) gespielt werden soll, oder aber man definiert dies später mit der Funktion SoundLoop().
MapGetValue(map, key)
Beschreibung
Gibt den Wert für den Schlüssel key zurück
Parameter
| map | das Handle der Map aus der ein Wert gelesen werden soll |
| key | Der Name des Schlüssels dessen Wert geholt werden soll |
Rückgabewert:
Wert des Schlüssels key
Beispiel:
function main(){
var map = CreateMap();
MapInsert(map, "Key 01", 1);
MapInsert(map, "Key 02", 2);
MapInsert(map, "Key 03", 3);
ResetMap(map);
var v;
while(v = MapNextItem(map)){
alert(v);
}
alert(MapGetValue(map, "Key 02"));
}
MapInsert(map, key, value)
Beschreibung
Fügt einem zuvor mit CreateMap() erzeugtem assoziativem
Array einen neuen Wert hinzu.
Parameter
| map | das Handle der Map der ein Wert hinzugefügt werden soll |
| key | Der Name des Wertes mit dem der Wert assoziiert werden soll |
| value | der Wert dieses Eintrags |
Rückgabewert:
Keiner
Beispiel:
function main(){
var map = CreateMap();
MapInsert(map, "Key 01", 1);
MapInsert(map, "Key 02", 2);
MapInsert(map, "Key 03", 3);
ResetMap(map);
var v;
while(v = MapNextItem(map)){
alert(v);
}
alert(MapGetValue(map, "Key 02"));
}
MapNextItem(map)
Beschreibung
Gibt den nächsten Schlüssel in der Map zurück. Diese Funktion wird
dazu verwendet um durch eine Map zu iterieren.
Parameter
| map | das Handle der Map aus der der nächste Wert geholt werden soll |
Rückgabewert:
Wert des nächsten Schlüssels
Beispiel:
function main(){
var map = CreateMap();
MapInsert(map, "Key 01", 1);
MapInsert(map, "Key 02", 2);
MapInsert(map, "Key 03", 3);
ResetMap(map);
var v;
while(v = MapNextItem(map)){
alert(v);
}
}
MapRemoveItem(map, key)
Beschreibung
Entfernt einen Schlüssel mit seinem Wert aus einer Map.
Parameter
| map | das Handle der Map aus der ein Schlüssel gelöscht werden soll |
| key | Der Name des Schlüssels |
Rückgabewert:
Keiner
Beispiel:
function main(){
var map = CreateMap();
MapInsert(map, "Key 01", 1);
MapInsert(map, "Key 02", 2);
MapInsert(map, "Key 03", 3);
ResetMap(map);
var v;
while(v = MapNextItem(map)){
alert(v);
}
alert(MapGetValue(map, "Key 02"));
MapRemoveItem(map, "Key 01");
}
ResetMap(map)
Beschreibung
Setzt eine Map zum erneuten iterieren zurück
Parameter
| map | das Handle der Map die zurück gesetzt werden soll |
Rückgabewert:
Keiner
Beispiel:
function main(){
var map = CreateMap();
MapInsert(map, "Key 01", 1);
MapInsert(map, "Key 02", 2);
MapInsert(map, "Key 03", 3);
ResetMap(map);
var v;
while(v = MapNextItem(map)){
alert(v);
}
}
MilliSecs()
Beschreibung
Gibt die Millisekunden zurück die seit dem Systemstart vergangen sind
Parameter
Keine
Rückgabewert:
Millisekunden seit dem Systemstart
MouseDown(key)
Beschreibung
Ermittelt ob die Maustaste key gerade gedrückt wird.
Parameter
| key |
|
Rückgabewert:
True wenn die Maustaste key gerade gedrückt
wird, ansonsten False.
MouseHit(key)
Beschreibung
Ermittelt ob die Maustaste key losgelassen wurde.
Parameter
| key |
|
Rückgabewert:
True wenn die Maustaste key losgelassen wurde, ansonsten False.
MouseX()
Beschreibung
Gibt die X-Koordinate des Mauszeigers zurück
Parameter
Keine
Rückgabewert:
X-Koordinate des Mauszeigers (relativ zur linken, oberen Ecke des Canvas)
MouseY()
Beschreibung
Gibt die Y-Koordinate des Mauszeigers zurück
Parameter
Keine
Rückgabewert:
Y-Koordinate des Mauszeigers (relativ zur linken, oberen Ecke des Canvas)
MouseWheel()
Beschreibung
Gibt den Status des Mausrades zurück
Parameter
Keine
Rückgabewert:
Wird das Mausrad nach vorn bewegt wird 1 zurückgegeben, wird es
nach hinten bewegt wird -1 zurück gegeben, ansonsten 0.
NextItem(list)
Beschreibung
Diese Funktion gibt das nächste Element in der Liste zurück.
Parameter
| list | Die Liste dessen nächstes Element ermittelt werden soll. |
Rückgabewert:
nächster Eintrag der Liste
Beispiel:
// Liste erstellen
var list = CreateList()
// ein paar Daten hinein schreiben
for(var i = 10; i <= 30; i+=10){
ListAddLast(list, "Eintrag " + i)
}
// Liste iterieren
var eintrag;
while(eintrag = NextItem(list)){
alert(eintrag);
}
Notify(msg)
Beschreibung
Öffnet ein Requester mit dem Text msg.
Parameter
| msg | Text der im Requester angezeigt werden soll |
Rückgabewert:
Keiner
OnImageLoaded(img, func)
Beschreibung
Führt die Funktion func aus sobald das Bild img fertig
geladen wurde.
Parameter
| img | Das Bild dessen Ladezustand überwacht werden soll. |
| func | Funktion die ausgeführt werden soll wenn das Bild komplett geladen wurde. |
Rückgabewert:
Keiner
AutoMidHandle(value)
Beschreibung
Wird der Funktion True übergeben, werden alle nachfolgenden
Zeichenoperation zentriert im Bild ausgeführt.
Parameter
| value | True wenn alle Bilder zentriert gezeichnet werden sollen, ansonsten False |
Rückgabewert:
Keiner
MidHandle(image, value)
Beschreibung
Gibt an ob das Bild image zentriert an den Zeichenkoordinaten gezeichnet
werden soll
Parameter
| image | Bild für das definiert werden soll ob es zentriert gezeichnet werden soll |
| value | True wenn das Bild zentriert gezeichnet werden soll, ansonsten False |
Rückgabewert:
Keiner
PauseSound(sound)
Beschreibung
Pausiert das Abspielen des Sounds "sound"
Parameter
| sound | Handle des Sounds der pausiert werden soll |
Rückgabewert:
Keiner
PlaySound(sound)
Beschreibung
Spielt den Sound ab der zuvor mit LoadSound()
geladen wurde
Parameter
| sound | Handle des zuvor geladenen Sounds |
Rückgabewert:
Keiner
Rand(min, max)
Beschreibung
Gibt einen zufälligen Wert zurück der zwischen min
und max liegt.
Parameter
| min | Kleinster Zufallswert |
| max | Größter Zufallswert |
Rückgabewert:
Ein zufälliger Wert zwischen min und max
ReadPixel(buffer, x, y)
Beschreibung
Gibt die Farbe des Pixels an Position x, y im Buffer
buffer zurück.
Parameter
| buffer | Buffer der gelesen werden soll |
| x, y | Position an der gelesen werden soll |
Rückgabewert:
Ein Objekt vom Typ tColor
Anmerkung:
Diese Funktion gibt ein Objekt vom Typ tColor zurück. Um an die Farbwerte
zu kommen können entweder die Funktionen Red(), Green(), Blue() und Alpha()
aufgerufen werden, oder man verwendet direkt die Methoden des Rückgabewerts:
color.red(), color.green(), color.blue(), color.alpha().
Beispiel:
var color = ReadPixel(Backbuffer(), 10, 10); Notify(color.red() + "," + color.green() + "," + color.blue() + "," + color.alpha());
Red(color)
Beschreibung
Gibt den Rot-Anteil der Farbe color zurück.
Parameter
| color | Farbobjekt dessen Rot-Anteil ermittelt werden soll |
Rückgabewert:
Rot-Anteil von color
RemoveFromList(list, val)
Beschreibung
Entfernt den Wert val aus der Liste list
Parameter
| list | die mit Handle der Liste aus der der Wert entfernt werden soll |
| val | Wert der aus der Liste entfernt werden soll |
Rückgabewert:
Keiner
Beispiel:
// Liste erstellen
var list = CreateList()
// ein paar Daten hinein schreiben
for(var i = 10; i <= 30; i+=10){
ListAddLast(list, "Eintrag " + i)
}
RemoveFromList(list, "Eintrag 20");
// Liste iterieren
var eintrag;
while(eintrag = NextItem(list)){
alert(eintrag);
}
ResetBob(bob)
Beschreibung
Setzt die Animationssequenz auf die gesamte Länge des AnimImages.
Parameter
| bob | Bob der zurück gesetzt werden soll. |
Rückgabewert:
Keiner
ResetList(list)
Beschreibung
Setzt den Iterator der Liste zurück. Dies ist notwendig um die Liste komplett
iterieren zu können. Wurde die Liste noch nicht, oder zuletzt komplett, iteriert
kann ResetList() weggelassen werden.
Parameter
| list | Handle der Liste die zurück gesetzt werden soll |
Rückgabewert:
Keiner
Beispiel:
// Liste erstellen
var list = CreateList()
// ein paar Daten hinein schreiben
for(var i = 10; i <= 30; i+=10){
ListAddLast(list, "Eintrag " + i)
}
ResetList(list);
// Liste iterieren
var eintrag;
while(eintrag = NextItem(list)){
alert(eintrag);
}
ResizeCanvas(canvasID, width, height)
Beschreibung
Skaliert das Canvas. So kann die Größe des Canvas vor dem Aufruf von Graphics()
oder Graphics3D() verändert werden.
Parameter
| canvasID | ID des Canvas dessen Größe geändert werden soll |
| width | Neue Breite des Canvas |
| height | Neue Höhe des Canvas |
Rückgabewert:
Keiner
Anmerkung:
In Verbindung mit den Funktionen Desktop(),
DesktopWidth() und
DesktopHeight() kann mit dieser Funktion das Canvas bspw. in den
Vollbildmodus geschaltet werden.
var desk = Desktop();
ResizeCanvas("game", DesktopWidth(desk), DesktopHeight(desk));
CenterCanvas()
Beschreibung
zentriert das Canvas im Browser-Fenster
Parameter
Keine
Rückgabewert:
Keiner
Anmerkung:
Diese Funktion setzt die Position des Canvas auf "absolute" und zentriert
es dann im Browser. Beachte dass damit ein umstehendes Design "zerstört"
werden kann. Um dies zu verhindern muss im Canvas-Style "z-index" auf einen
Wert > 1 gesetzt werden!
/* Canvas Style */
#myCanvas{
z-index : 10;
}
SetBobange(bob, rangeName)
Beschreibung
Ändert die aktuelle Animationssequenz des Bob.
Parameter
| bob | Der Bob für den die aktuelle Animationssequenz geändert werden soll. |
| rangeName | Name der Animationssequenz |
Rückgabewert:
Keiner
SetColor(r, g, b, a)
Beschreibung
Setzt die aktuelle Zeichenfarbe
Parameter
| r, g, b | Rot-, Grün-, und Blauanteil der Farbe |
| alpha | Transparenz der Farbe (0 - 255) |
Rückgabewert:
Keiner
Anmerkung:
SetColor() definiert die aktuelle Farbe für alle nachfolgenden
Zeichenoperationen. Die Werte sind immer in einem Bereich von 0 - 255 anzugeben.
SetShadow(offX, offY, blur)
Beschreibung
Definiert wie ein Schatten für nachfolgende Elemente gezeichnet werden soll
Parameter
| offX, offY | Versatz des Schattens in X und Y Richtung |
| blur | Gibt an um wieviele Pixel der Schatten weichgezeichnet werden soll |
Rückgabewert:
Keiner
Anmerkung:
SetColor() definiert die Farbe des Schattens.
Beachte: Schatten sind sehr teuer für die Performance. Selbst
auf schnellen Gamer-Maschinen wird die Performance bis zu 70% reduziert!
SetAlpha(alpha)
Beschreibung
Definiert mit welcher Transparenz die nachfolgenden Zeichenoperationen durchgeführt werden sollen.
Parameter
| alpha | ein Wert zwischen 0.0 und 1.0 |
Rückgabewert:
Keiner
SetDrawMode(drawmode)
Beschreibung
Definiert mit welcher "Composite-Operation" die nachfolgenden Zeichenoperationen durchgeführt werden sollen.
Parameter
| drawmode | gewünschter Modus (siehe Grafik) |
Rückgabewert:
Keiner
Anmerkung:
drawmode kann einer der folgenden Werte sein:
- source-over (Default)
- source-in
- source-out
- source-atop
- destination-over
- destination-in
- destination-out
- destination-atop
- lighter
- copy
- xor
SetFont(fontName, height, isBold, isItalic)
Beschreibung
Legt fest mit welchem Font die nachfolgenden DrawText()
Anweisungen zeichnen sollen.
Parameter
| fontName | Der Name des Fonts (Achtung! CSS-Style) |
| height | Die Höhe des Fonts (Metrics müssen angegeben werden (px, pt, em etc.)) |
| isBold | True = Der Font wird fett gezeichnet |
| isItalic | True = Der Font wird schräggestellt gezeichnet |
Rückgabewert:
Keiner
Anmerkung:
fontName muss im "CSS-Style" angegeben werden.
Beispiel:
// Lade den Font "Arial" (Alternative Verdana)
// mit einer Höhe von 30 Pixel. Der Font
// soll fett und kursiv gezeichnet werden.
SetFont("Arial, Verdana, sans-serif", "30px", True, True);
SetScale(x, y)
Beschreibung
Definiert die Skalierung für nachfolgende Zeichenbefehle
Parameter
| x | Skalierung in der Breite |
| y | Skalierung in der Höhe |
Rückgabewert:
Keiner
Anmerkung:
Derzeit funktioniert SetScale() nur mit
DrawImage(). Die Parameter x, y sind relativ
anzugeben: 0, 0 skaliert das Bild auf 0, 0. 1, 1 behält die original
Skalierung des Bildes bei. 2, 2 verdoppelt die Größe des
Bildes etc.
SetRotation(winkel)
Beschreibung
Definiert die Rotation für nachfolgende Zeichenbefehle
Parameter
| winkel | Winkel der Skalierung (zwischen 0.0 und 360.0 Grad) |
Rückgabewert:
Keiner
Anmerkung:
Derzeit (Version 0.7) erwarten betroffene Funktionen den Parameter als Bogenmaß oder
liefern einen Winkel im Bogenmaß. SetRotation() arbeitet aber mit Winkeln. In Zukunft
werden alle Funktionen auf "Degree" (Winkel) umgestellt. Ich werde dies im Changelog
und in der Dokumentation entsprechend erläutern.
SetSoundPosition(sound, position)
Beschreibung
Definiert ab welcher Sekunde der Sound abgespielt werden soll
Parameter
| sound | Sound dessen Startposition bestimmt werden soll |
| position | Sekunde an der der Sound abgespielt werden soll |
Rückgabewert:
Keiner
ShowPointer
Beschreibung
zeigt den mit HidePointer() versteckten Mauszeiger
wieder an.
Parameter
Keine
Rückgabewert:
Keiner
SoundLength(sound)
Beschreibung
Gibt die Länge des Sounds in Sekunden zurück
Parameter
| sound | Handle des Sounds dessen Länge ermittelt werden soll |
Rückgabewert:
Länge des Sounds in Sekunden
SoundVolume(sound, volume)
Beschreibung
Definiert die Lautstärke des Sounds
Parameter
| sound | Handle des Sounds dessen Lautstärke geändert werden soll |
| volume | Ein Wert zwischen 0.0 und 1.0 der die Lautstärke definiert |
Rückgabewert:
Keiner
StartBob(bob)
Beschreibung
Startet die Bob-Animation
Parameter
| bob | Der Bob dessen Animation gestartet werden soll |
Rückgabewert:
Keiner
StopBob(bob)
Beschreibung
Stoppt die Bob-Animation
Parameter
| bob | Der Bob dessen Animation gestoppt werden soll |
Rückgabewert:
Keiner
StopSound(sound)
Beschreibung
Stoppt das Abspielen des Sounds "sound" und setzt den Sound auf Anfang
Parameter
| sound | Handle des Sounds der gestoppt werden soll |
Rückgabewert:
Keiner
GetSoundPosition(sound)
Beschreibung
Liefert die Sekunde und die Millisekunde an der der Sound gerade abgespielt wird.
Parameter
| sound | Handle des Sounds dessen aktuelle Spielzeit ermittelt werden soll |
Rückgabewert:
Fließkommawert: Sekunde.Millisekunde (bspw. 3.500)
SoundLoop(sound, value)
Beschreibung
Definiert ob der Sound wiederholt abgespielt werden soll oder nicht.
Parameter
| sound | Handle des Sounds |
| value | True wenn der Sound wiederholt werden soll, ansonsten False |
Rückgabewert:
Keiner
GetLoopCount(sound)
Beschreibung
Gibt die Anzahl der Wiederholungen zurück die der Sound bereits gespielt wurde
Parameter
| sound | Handle des Sounds |
Rückgabewert:
Anzahl der Wiederholungen
StringWidth(text)
Beschreibung
Ermittelt die Breite von text in Pixeln.
Parameter
| text | Der String dessen Breite ermittelt werden soll |
Rückgabewert:
Keiner
Left(inString, chars)
Beschreibung
Gibt den linken Teil der Zeichenkette inString zurück. Die
Länge der Zeichenketten die zurück gegeben werden soll wird
mit chars definiert.
Parameter
| inString | Zeichenkette von der der linke Teil ermittelt werden soll |
| chars | Anzahl der Zeichen die ermittelt werden sollen |
Rückgabewert:
Zeichenkette mit der Länge chars
Mid(inString, startPos, chars)
Beschreibung
Gibt einen Teil der Zeichenkette inString zurück. Die
Länge der Zeichenketten die zurück gegeben werden soll wird
mit chars definiert, startPos gibt an an welcher Stelle
die Teilzeichenkette beginnen soll.
Parameter
| inString | Zeichenkette aus der ein Teil ermittelt werden soll |
| startPos | Startposition ab der die Teilzeichenkette ermittelt werden soll |
| chars | Anzahl der Zeichen die ermittelt werden sollen |
Rückgabewert:
Zeichenkette mit der Länge chars
Right(inString, chars)
Beschreibung
Gibt den rechten Teil der Zeichenkette inString zurück. Die
Länge der Zeichenketten die zurück gegeben werden soll wird
mit chars definiert.
Parameter
| inString | Zeichenkette von der der rechte Teil ermittelt werden soll |
| chars | Anzahl der Zeichen die ermittelt werden sollen |
Rückgabewert:
Zeichenkette mit der Länge chars
InStr(inString, toFind)
Beschreibung
Ermittelt ob sich die Zeichenkette toFind in inString
befindet.
Parameter
| inString | Zeichenkette in der ein Zeichen oder ein String gesucht werden soll |
| toFind | Zeichenkette oder Zeichen nach dem gesucht werden soll |
Rückgabewert:
Position von toFind (Zählung beginnt bei 0). Konnte keine
Position ermittelt werden gibt die Funktion -1 zurück.
Replace(inString, toFind, replaceWith)
Beschreibung
Ersetzt die Zeichenkette toFind durch replaceWith.
Parameter
| inString | Zeichenkette in der ein Zeichen oder ein String ersetzt werden soll |
| toFind | zu ersetzender Teil der Zeichenkette |
| replaceWith | Zeichen oder eichenkette die stattdessen eingefügt werden soll |
Rückgabewert:
Neue Zeichenkette
Lower(inString)
Beschreibung
Wandelt alle Zeichen von inString in Kleinbuchstaben um.
Parameter
| inString | Zeichenkette deren Zeichen umgewandelt werden sollen |
Rückgabewert:
Zeichenkette aus Kleinbuchstaben
Upper(inString)
Beschreibung
Wandelt alle Zeichen von inString in Grossbuchstaben um.
Parameter
| inString | Zeichenkette deren Zeichen umgewandelt werden sollen |
Rückgabewert:
Zeichenkette aus Grossbuchstaben
Trim(inString)
Beschreibung
Entfernt Leerzeichen am Anfang und am Ende der Zeichenkette.
Parameter
| inString | Zeichenkette die "getrimmt" werden soll |
Rückgabewert:
Zeichenkette ohne Leerzeichen am Anfang und am Ende
WritePixel(buffer, x, y)
Beschreibung
Zeichnet einen Pixel in der aktuellen Farbe an die Position x, y in den
Buffer buffer.
Parameter
| buffer | Buffer der für die Aktion benutzt werden soll |
| x, y | Koordinate im Buffer an der die Aktion stattfinden soll |
Rückgabewert:
Keiner
Anmerkung:
WritePixel() ist sehr Resourcen-intensiv. Man sollte sich
genau überlegen ob man einen Pixel per Frame zeichnen will oder ob es genügt
dies vor dem Mainloop zu erledigen oder aber dies nur in bestimmten Situationen zu tun.
Sind alle Pixel gezeichnet ist der Aufruf der Funktion
WritePixelReady() erforderlich um die Änderungen anzuzeigen.
WaitForRes(value)
Beschreibung
Definiert ob die Funktionen LoadSound und LoadImage solange warten
sollen bis die Resource vollständig geladen wurde.
Parameter
| value | True wenn gewartet werden soll, ansonsten False |
Rückgabewert:
Keiner
Anmerkung:
Diese Funktion soll eigentlich nur die Kompatiblität zu Blitzbasic
erhöhen. Es ist ratsam selbst eine Routine zu schreiben die nicht
blockiert wenn sie eine Resource auf Vollständigkeit prüft.
jBB HTML Template
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>jBB Template</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<!-- change the path to the location of jbb.js -->
<script type="text/javascript" src="../js/jbb-min.js"></script>
<script type="text/javascript">
/*
global variables
var myImage;
*/
function jBBInit(){
Graphics("jBBGame", jBBMain, 60);
ClsColor(0, 0, 0);
/*
resources
myImage = LoadImage(...);
*/
}
function jBBMain(){
Cls();
// here comes the action ...
}
</script>
</head>
<body onLoad="jBBInit();">
<canvas id="jBBGame" width="800" height="600">
This text is displayed if your browser does not support HTML5 Canvas.
</canvas>
</body>
</html>
Folge jBB auf Twitter