2.4 Mobile Plattformen

Hollywood ist auch als Nur-Player-Version für Android und iOS verfügbar, die es Ihnen erlauben, Ihre Hollywood-Applets auf Smartphones und Tablets auszuführen. Der Hollywood-Player für Android benötigt mindestens Android 4.0 und ist bei Google Play unter dieser URL frei verfügbar: http://play.google.com/store/apps/details?id=com.airsoftsoftwair.hollywood. Leider ist der Hollywood-Player für iOS derzeit nicht im App Store verfügbar, da seine Möglichkeiten mit den App Store-Regeln von Apple in Konflikt geraten.

Hier sind Screenshots des Hollywood-Players für Android (links) und iOS (rechts):

Wenn Sie Ihre Hollywood-Projekte auf Ihrem mobilen Gerät ausführen wollen, müssen Sie diese zuerst als Hollywood-Applet kompilieren, sie auf Ihr Gerät kopieren und sie dann mit dem Hollywood-Player für Ihre mobile Plattform ausführen.

Alternativ gibt es auch ein Add-On namens Hollywood-APK-Compiler, mit dem Sie Ihre Hollywood-Projekte in eigenständige APK-Dateien für Android kompilieren können. Bitte besuchen Sie das Hollywood-Portal für weitere Informationen über den Hollywood-APK-Compiler: https://www.hollywood-mal.de/

Wenn Sie den frei verfügbaren Hollywood-Player nutzen möchten, lesen Sie diese Schritt-für-Schritt-Anleitung, um Ihre Hollywood-Projekte auf Ihr Mobilgerät zu bekommen:

  1. Erstellen Sie Ihre Hollywood-Projekt als Hollywood-Applet (*.hwa) in der Hollywood-GUI, im Designer oder von der Kommandozeile aus.
  2. Auf Android-Systeme: Kopieren Sie die *.hwa Datei in das Verzeichnis Hollywood der SD-Karte auf Ihrem Android-Gerät. Das Verzeichnis Hollywood wird automatisch erstellt, wenn Sie zum ersten Hollywood auf Ihrem Android-Gerät starten. Wenn es nicht vorhanden ist, erstellen Sie es von Hand. Es muss im Stammverzeichnis der SD-Karte sein.
  3. Auf iOS-Syteme: Verwenden Sie iTunes, um die Datei *.hwa in das Dokumentenverzeichnis vom App Hollywood-Player zu kopieren.
  4. Wenn das Applet ohne externen Dateien geladen wird oder alle Dateien ins Applet eingebunden wurden, dann lesen Sie bei Punkt 7 weiter.
  5. Wenn Ihr Applet externen Dateien lädt, erstellen Sie ein neues Verzeichnis für Ihr Applet innerhalb des Hollywood-Verzeichnisses (auf Android) oder innerhalb der APP des Hollywood-Player im Dokumentverzeichnis (auf iOS). Der Verzeichnisname muss mit dem Namen Ihres Applets ohne die Dateierweiterung (*.hwa) identisch sein. Z.B. wenn Ihr Applet My cool game.hwa heißt, müssen Sie das Verzeichnis My cool game innerhalb des Verzeichnisses Hollywood oder Dokumentenverzeichnis erstellen.
  6. Kopieren Sie alle für Ihr Applet erforderlichen Dateien in das neu erstellte Verzeichnis.
  7. Starten Sie den Hollywood-Player auf Ihrem Gerät. Eine Liste aller gefundenen Applets wird angezeigt. Wählen Sie Ihr Applet und berühren Sie dann die Play-Taste in der Steuerleiste am unteren Rand des Bildschirms.
  8. Nun sollte Ihr Applet starten!

Alternativ können Sie auf Android auch die Hollywood-Applet zu einem beliebigen Ort auf der SD-Karte kopieren und starten, indem Sie einfach die *.hwa Datei direkt von Ihrem Dateimanager auswählen. In diesem Fall werden alle externen Dateien vom Applet aus der Position gesucht werden, in dem sich die *.hwa Datei befindet. Hollywood wechselt zum Laden der externen Dateien nicht automatisch in das Unterverzeichnis mit demselben Namen wie die *.hwa Datei, wenn sich das Applet außerhalb des /sdcard/Hollywood Ordner befindet.

Sie können einige Optionen konfigurieren, indem Sie die Taste "Options" drücken. Den Options-Bildschirm von Android sehen Sie links, den von iOS rechts:

Folgende Optionen stehen zur Verfügung:

Full screen (auto scale):
Führt das Skript mit dem Autoskalierungs-System im Vollbildmodus aus. Dies ist die empfohlene Methode um sicherzustellen, dass Skripte, die für eine andere Auflösung entworfen wurden, den gesamten Bildschirm Ihres Mobilgeräts abdecken. Wenn Ihr Skript Ebenen und Vektorgrafiken verwendet, sollten Sie stattdessen das Ebenenskalierungs-System verwenden, um in jeder Auflösung perfekt scharfe Grafiken zu erhalten (siehe unten).

Full screen (layer scale):
Führt das Skript mit dem Ebenenskalierungs-System im Vollbildmodus aus. Dies wird nur für Skripte unterstützt, die Ebenen verwenden. Es ist langsamer als das Autoskalierungs-System, kann aber zu perfekt scharfen Grafiken in jeder Auflösung führen, wenn Ihr Skript nur Vektorgrafiken verwendet. Für Skripte, die keine Ebenen verwenden, sollten Sie das Autoskalierungs-System verwenden (siehe oben). Beachten Sie, dass Sie auch das Autoskalierungs-System für Skripte verwenden können, die Ebenen verwenden, aber dann ist die Qualität nicht so gut wie bei der Ebenenskalierung, wenn Ihr Skript Vektorgrafiken verwendet. Aus diesem Grund empfiehlt es sich, die Ebenenskalierung nur für Skripte zu verwenden, die Ebenen und Vektorgrafiken verwenden. Für Skripte, die Ebenen und Grafiken im Pixelformat verwenden, sollten Sie die Autoskalierung verwenden, weil sie schneller ist.

Interpolate:
Verwendet beim Skalieren Antialiasing-Interpolation. Dies wird empfohlen, um eine glattere Grafik mit weniger Skalierungsartefakten zu erhalten. Dies ist zwar langsamer, sieht aber besser aus.

Hide action bar
Blendet die Aktionsleiste (ActionsBar) auf Android aus. Dies wird für Skripte empfohlen, die keine Benutzerinteraktion über Optionen in der Android-Aktionsleiste benötigen.

Hide status bar:
Wenn eine Titelleiste unter iOS vorhanden ist, wird diese ausgeblendet. Die Aktivierung dieser Option wird einen Vollbildschirm zur Folge haben.

Hide options menu:
Über das Optionsmenü werden keine Änderungen mehr an der Display-Konfiguration über das Optionsmenü in der Aktionsleiste zugelassen. Wenn Sie dies aktivieren, ist in der Aktionsleiste kein Optionsmenü mehr sichtbar. Dies wird nur auf Android unterstützt. Auf iOS unterstützt Hollywood das Ändern von Optionen nicht, während ein Skript läuft.

Keep screen on:
Zwingt das mobile Gerät seinen Bildschirm anzulassen, selbst wenn keine Benutzeraktivitäten stattfinden. Normalerweise schalten mobile Geräte nach einer gewissen Inaktivitätszeit automatisch in den Batteriesparmodus. Wenn Sie diese Option auswählen, bleibt der Bildschirm an.

No sound:
Wenn Sie diese Option aktivieren, wird Hollywood stumm gestartet.

Siehe Konsolenargumente für detailliertere Informationen zu den oben aufgeführten Optionen.

Die mobilen Versionen von Hollywood haben im Vergleich zu den Desktop-Versionen einige Besonderheiten. Hier ist eine Liste für Android und iOS:

  1. Auf Android und iOS hat Hollywood native Unterstützung für Ogg Vorbis und Ogg Theora. Sie brauchen keine Plugins fürs Laden von diesen Dateiformaten.

  2. Sie können eine virtuelle Tastatur anzeigen, indem Sie den Befehle ShowKeyboard() benutzen. Mit HideKeyboard() können Sie die virtuelle Tastatur schließen. Siehe InstallEventHandler für Details.

  3. Sie können mit dem Ereignis-Handler OrientationChange herausfinden, wann der Benutzer das Gerät dreht. Siehe InstallEventHandler für Details.

  4. Sie können auch eine Ausrichtung festlegen, die Ihr Skript verwenden soll, indem Sie den Tag "Orientation" angeben, das von der Präprozessoranweisung @DISPLAY unterstützt wird. In diesem Fall reagiert Hollywood nicht auf Orientierungsänderungen, wenn der Benutzer das Gerät dreht. Stattdessen behält es den Orientierungsmodus, den Sie im Tag "Orientation" angegeben haben. Siehe DISPLAY für Details.

  5. Bei Android können Sie auch zwischen Vollbild- und Nicht-Vollbildmodus wechseln, indem Sie das Optionsmenü in der Aktionsleiste verwenden.

Natürlich gibt es einige Einschränkungen in den mobilen Versionen von Hollywood. Im Gegensatz zu den Desktop-Versionen von Hollywood unterstützt die iOS-Version von Hollywood nicht mehrere Displays, sondern nur ein einziges. Auch können unter iOS Displays keine Menüs verwenden. Außerdem ist es nicht möglich, den Mauszeiger zu wechseln, da es typischerweise keine auf Android und iOS gibt. Es ist auch nicht möglich, transparente BGPics zu verwenden und das Feld Desktop wird in der Anweisung @DISPLAY ebenfalls nicht unterstützt.

Hier ist eine Liste mit Befehlen, die nicht in den mobilen Versionen von Hollywood unterstützt werden:

 
- ActivateDisplay() (nur unter iOS nicht unterstützt)
- ChangeDisplayMode() (nur unter iOS nicht unterstützt)
- CloseDisplay() (nur unter iOS nicht unterstützt)
- CreatePointer()
- CreatePort()
- DebugPrompt()
- FontRequest()
- FreePointer()
- GetEnv()
- GetFileArgument()
- GetRawArguments()
- HideDisplay() (nur unter iOS nicht unterstützt)
- HidePointer()
- MovePointer()
- OpenDisplay() (nur unter iOS nicht unterstützt)
- SelectDisplay() (nur unter iOS nicht unterstützt)
- SendMessage()
- SetPointer()
- SetEnv()
- ShowDisplay() (nur unter iOS nicht unterstützt)
- ShowPointer()
- UnsetEnv()

Es gibt auch einige Befehle, die exklusiv für die mobilen Versionen von Hollywood verfügbar sind:

 
- CallJavaMethod() (nur Android)
- GetAsset() (nur Android)
- HideKeyboard()
- ImageRequest() (nur Android)
- PerformSelector() (nur iOS)
- PermissionRequest() (nur Android)
- ShowKeyboard()
- ShowToast()
- Vibrate() (nur Android)

Die Android-Version von Hollywood unterstützt auch Hollywood-Plugins. Sie müssen sie in das Verzeichnis Hollywood/Plugins auf Ihrer SD-Karte kopieren. Hollywood wird diesen Standort bei jedem Start scannen und alle Plugins von dort laden. Die iOS-Version von Hollywood unterstützt derzeit keine Plugins.

Wenn Ihr Skript auf einer mobilen Plattform extrem langsam läuft, müssen Sie Ihre Zeichnungstechnik ändern. Das Auffrischen des Bildschirms kann auf einem mobilen Gerät ziemlich viel Ressourcen in Anspruch nehmen, weshalb Sie versuchen sollten, die Häufigkeit der Bildschirmaktualisierungen zu minimieren. Der beste Weg, dies zu tun, ist das doppelt gepufferte Zeichnen mit den Befehlen BeginDoubleBuffer() und Flip(). Denn viele Zeichnungsoperationen, die nur kleine Bereiche betreffen, verlangsamen die Grafikmodule der mobilen Geräten. So sollten Sie versuchen, so viele Zeichnungsoperationen wie möglich in einem einzigen Aufruf zu kombinieren. Ein Doppelpuffer ist die beste Lösung für dieses Problem. Wenn Sie aus irgendeinem Grund keinen Doppelpuffer verwenden können (z.B. weil Sie Sprites oder Ebenen verwenden), dann kapseln Sie alle Zeichnungsbefehle, die zum Zeichnen eines Einzelbildes benötigt werden, in einem Abschnitt mit den Befehlen BeginRefresh() und EndRefresh(). Dann sollte die Leistung bei mobilen Geräten viel besser werden. Siehe BeginRefresh für Details.


Navigation zeigen