Hyperbook Dokumenation

Java-ähnliche Programmiersprache (Compiler, Interpreter, Debugger) mit IDE, die komplett im Browser ausgeführt wird.

Das Online-IDE element akzeptiert folgende Parameter:

  • fileList: Dateiliste links.
  • console: falls mit unterem Panel: mit/ohne Console-Tab.
  • pCode: falls mit unterem Panel: mit/ohne PCode-Tab.
  • bottomPanel: mit unterem Panel.
  • errorList: falls mit unterem Panel: mit/ohne Fehlerliste.
  • height: Höhe des Editors. Standardwert 600px.
  • speed: Geschwindigkeit in Steps/s. Standardwert 1000.
  • libraries: Komma-getrennte Liste der zu ladenden Bibliotheken, z.B. scratch.

(See: https://github.com/martin-pabst/Online-IDE-new-compiler).

:::onlineide
 
````markdown A Hint
## Tip:
 
Tipps werden in einer einfachen Markdown-Syntax
verfasst, die **Fettschrift** u.ä. ermöglicht, aber
auch Syntax-Highlighting im Fließtext (`class Quadrat extends Rectangle { }`) und in ganzen Absätzen:
 
```
 
double v = Math.random()\*8 + 2; // Amount of speed between 2 and 10
 
double w = Math.random()*2*Math.PI; // angle between 0 and 2\*PI
 
vx = v \* Math.cos(w);
 
vy = v \* Math.sin(w);
 
```
````
 
```java Feuerwerk.java
 
new Feuerwerk();
 
class Feuerwerk extends Actor {
 
   public void act() {
      if(Math.random() < 0.03) {
 
         int funkenzahl = Math.floor(Math.random() * 50 + 30);
         int farbe = Color.randomColor(128);
 
         double x = Math.random() * 400 + 200;
         double y = Math.random() * 600;
         double lebensdauer = 60 + Math.random() * 60;
         for (int i = 0; i < funkenzahl; i++) {
            new Funke(x, y, farbe, lebensdauer);
         }
         Sound.playSound(Sound.cannon_boom);
 
      }
   }
 
}
 
class Funke extends Circle {
   double vx;
   double vy;
   double lebensdauer;           // lebensdauer in 1/30 s
 
   Funke(double x, double y, int farbe, double lebensdauer) {
      super(x, y, 4);
      double winkel = Math.random() * 2 * Math.PI;
      double v = Math.random() * 15 + 5;
      vx = v * Math.cos(winkel);
      vy = v * Math.sin(winkel);
      setFillColor(farbe);
      this.lebensdauer = lebensdauer;
   }
 
   public void act() {
      lebensdauer--;
      move(vx, vy);
      vy = vy + 0.2;
      if(lebensdauer < 30) {
         setAlpha(lebensdauer / 30);
      }
      if(isOutsideView() || lebensdauer < 0) {
         destroy();
      }
   }
 
}
 
```
 
:::

Mit anderen Bibliotheken

Bibliothek Parameter Beschreibung
Abiturklassen NRW libraries="nrw" Klassenbibliothek zur Verwendung im Zentralabitur Nordrhein-Westfalen
Graphics and Games Library libraries="gng" Graphische Klassenbibliothek für die bayerischen Informatikbücher des Cornelsen-Verlages
Abiturklassen Niedersachsen libraries="niedersachsen" Klassenbibliothek zur Verwendung im Abitur Niedersachsen
Scratch for Java libraries="scratch" Scratch-artige Klassenbibliothek (Stage, Sprite, Kostüme, Klänge) — Port von org.openpatch.scratch
:::onlineide{height="500px" console=false libraries="nrw"}
 
```java Test.java
 
var l = new List<Integer>();
l.append(1);
 
```
 
:::

Scratch for Java

Mit libraries="scratch" stehen die Klassen von Scratch for Java zur Verfügung: Stage, Sprite, AnimatedSprite, UISprite, Pen, Text, Camera, Timer und der Rest der Bibliothek. Programme für die Desktop-Bibliothek laufen unverändert im Browser, mit zwei Unterschieden:

  • Kein import org.openpatch.scratch.*; — die Online IDE kennt keine Pakete, alle Klassen sind sofort verfügbar.
  • Alles, was nur ein Desktop-Programm kann (Shader, Pixelzugriff, Aufnahmen, Dateisystem, Tiled-Karten, Vollbild), lässt sich übersetzen, meldet aber in der Ausgabe, dass es nichts tut.

Die 841 Kostüme, 266 Klänge und die Hintergründe der Bibliothek sind enthalten, ein Beispiel braucht also keine eigenen Dateien. Alle Kostüme sind auf der Seite Sprites der Scratch-for-Java-Dokumentation zu sehen.

Im folgenden Beispiel läuft der Hase dem Mauszeiger nach und spielt einen Klang, sobald er die Möhre erreicht.

:::onlineide{height="500px" libraries="scratch"}
 
```java MeineBuehne.java
 
new MeineBuehne();
 
class MeineBuehne extends Stage {
 
   MeineBuehne() {
      super(480, 360);
      addBackdrop("background");
      add(new Hase());
      add(new Moehre());
   }
 
}
 
class Hase extends Sprite {
 
   public void whenAddedToStage() {
      addCostume("bunny1_walk1");
      addCostume("bunny1_walk2");
      addSound("handleCoins");
      setSize(60);
      setRotationStyle(RotationStyle.LEFT_RIGHT);
      setPosition(-180, -40);
      say("Beweg die Maus!", 2000);
   }
 
   public void run() {
      if (distanceToMousePointer() > 10) {
         pointTowardsMousePointer();
         move(2);
         if (getTimer().everyMillis(150)) {
            nextCostume();
         }
      }
      if (isTouchingSprite(Moehre.class)) {
         playSound("handleCoins");
         getTouchingSprite(Moehre.class).goToRandomPosition();
      }
   }
 
   public void whenClicked() {
      say("Hopp!", 1000);
   }
 
}
 
class Moehre extends Sprite {
 
   public void whenAddedToStage() {
      addCostume("carrot");
      setSize(50);
      setPosition(120, -40);
   }
 
   public void run() {
      turnRight(1);
   }
 
}
 
```
 
:::
Online IDE

Teilbare URL erstellen

Abschnitte auswählen

✎ GitHub© Copyright 2026 by OpenPatch