Wir nutzen Cookies, um das allgemeine Benutzerelebnis zu verbessern. Mit der Nutzung unseres Wikis stimmst du der Nutzung von Cookies zu.

Scratch-Projekte portieren und kompilieren

Das Format für Scratch-Projekte (.sb und .sb2) kann nur vom Scratch-Editor ausgeführt werden. Durch Kompilieren eines Scratch-Projektes kann das Projekt in ein anderes Format übersetzt werden welches unabhängig von Scratch ausgeführt werden kann. Eine solche Möglichkeit zum Kompilieren wurde häufig für Scratch 2.0 vorgeschlagen[1], wurde für den normalen Online- und Offline-Editor jedoch nie umgesetzt. Verschiedene Scratcher haven jedoch Tools und Abläufe ausgearbeitet die es ermöglichen, ein Scratch-Projekt in eine exe- oder app-Datei umzuwandeln.

Diese Anleitung beschreibt wie ein Scratch-Projekte in verschiedene ausführbare Dateiformate für Windows, Macintosh oder Linux umgewandelt werden können.

SB2 (Scratch 2.0) zu SWF

SWF steht für Small Web Format und ist die Dateiendung für Programme die mit dem Adobe Flash Player abgespielt werden können. Scratch 2.0 selbst ist ebenfalls ein SWF-Programm welches die eigentlichen Scratch-Programme ausführt.

Der [1] von junebeetle ermöglicht es ein Scratch-Projekt mit dem Scratch-Interpreter zu bündeln uns so eine einzige ausführbare Datei zu erzeugen.

Die Programmausführung benötigt weiterhin den Flash Player von Adobe, allerdings ist man nicht mehr von der Scratch-Webseite abhängig. Dazu können die Steuerelemente (grüne Startflagge, Stoppschild) ausgeblendet werden. Weitere Einstellungen ermöglichen das Skalieren der Bühnengröße oder das automatische Starten des Projekts.

Eine mögliche Anwendung ist die Veröffentlichung von Spielen die in Scratch geschrieben sind auf Webseiten wie http://itch.io oder http://gamejolt.com. Dies ermöglicht auch die Veröffentlichung von Projekten welche nicht für alle Altersgruppen geeignet sind. Spiele mit solchen Inhalten, darunter fallen sehr viele Projekte mit FNAF (Five Nights at Freddy's)-Thema, dürfen auf Scratch wegen ihres Inhalts nicht veröffentlicht werden.

Ein Beispiel für ein Scratch-Projekt, welches mit Hilfe von junebeetles Konverter auf itch.io veröffentlicht wurde ist Halloween Forest.

SB2 (Scratch 2.0) zu HTML5

Der Phosphorus-Player von Nathan Dinsmore liest Scratchprojekte direkt vom Scratch-Server ein und kompiliert diese nach HTML5. Derzeit sind viele Projekte unter Phosphorus lauffähig, es kommt jedoch öfters zu Darstellungsfehlern. Zum Beispiel werden Alphawerte manchmal nicht richtig dargestellt. "Versteckte" Objekte in einem Scratch-Projekt können dadurch andere Objekte überlagern.

Die Kompilierung zu HTML 5 ermöglicht es, das Projekt Fullscreen im Browser abzuspielen. Dadurch ist es möglich, Projekte auch auf Smartphones laufen zu lassen.

SB2 (Scratch 2.0) zu Snap!

Der Snapin8r2 (Aussprache "Snapinator 2") ist ein von djdolphin weiterentwickelter Konverter basierend auf Snapin8r von hardmath123. Es übersetzt auf komplexe Projekte gut nach Snap!. Derzeit sind bei den umgewandelten Projekten aber noch gelegentliche Unterschiede in der Ausführung und vor allem erhebliche Performanceunterschiede zwischen Scratch und Snap! sichtbar - das zugehörige Snap!-Projekt läuft ca. um einen Faktor 15 langsamer. Stellt man die Snap!-Option "Prefer smooth animations" aus, so ist es immer noch ein Faktor 5-7 um den das Snap!-Projekt langsamer läuft.

Das Scratch-Projekt muss dazu davor auf den Rechner heruntergeladen werden. Auf der Snapin8r2-Webseite kann die sb2-Datei dann hochgeladen werden. Die Konvertierung geht sehr schnell vonstatten, das konvertierte Projekt kann dann entweder als Snap!-Datei im XML-Format auf den Computer heruntergeladen werden oder direkt in Snap! geöffnet werden.

Snap!-Projekte laufen direkt im Webbrowser und sind nicht auf Adobe Flash angewiesen. Die Webseite Snapp! bietet auch die Möglichkeit, ein Snap!-Projekt nach Windows, Linux, OS X zu kompilieren. Die so kompilierten Projekte funktionieren aber noch sehr unzuverlässig.

SB2 (Scratch 2.0) in SB (Scratch 1.4) umwandeln

In Scratch 2.0 gespeicherte .SB2-Dateien können mit Hilfe von blob8108s Retro Converter in .SB-Dateien umgewandelt werden. Die Übersetzung ist notwendig um Übersetzer zu verwender, welche für das Format von Scratch 1.4 entwickelt wurden. Blöcke welche es in Scratch 1.4 noch nicht gab (zum Beispiel jene für die Klonen-Funktion) werden jedoch nicht mitübersetzt.


SB2 to SB

  1. Lade das Scratch 2.0-Projekt von der Scratch Website herunter oder speichere es mit dem Scratch 2 Offline Editor.
  2. Gehe auf die Webseite des Retro Converters und folge den Anweisungen.
  3. Wenn die Umwandlung erfolgt ist, erscheint ein Pop-up-Fenster und du kannst die 1.4 version (SB) deines Scratch 2.0-Projektes herunterladen.

SB to Other Formats

  1. Im Folgenden findest du weitere Anleitungen um Projekte im .sb-Format in andere Formate umzuwandeln.

SB to EXE/APP

Unter Windows wird eine exe-Datei erzeugt, unter Mac OS X eine .app-Datei.

  1. Installiere BYOB 3 (http://snap.berkeley.edu/old-byob.html).
  2. Öffne darin die .sb-Datei
  3. Klicke "Compile this project" im "Share"-Menu.

SB to JAR (Java executable)

Die folgende Anleitung funktioiniert auf allen Systemen (Mac, Windows, and Linux) mit installierter Java-Laufzeitumgebung:

  1. Lade ScratchToJAR herunter
  2. Extrahiere alle Dateien von ScratchToJAR und starte es durch Doppelklick auf die ToJAR.jar-Datei
  3. Wähle die zu konvertierende Datei aus.
  4. Gib den Namen der Ausgabedatei inklusive der Endung .jar an, zum Beispiel Example.jar
  5. Gib den Pfad für die Ausgabedatei an, zum Beispiel C:/Documents and Settings/Documents/Example.jar
  6. Klicke auf "compile"

SB to APP via Java

Funktioniert nur unter MAC OS:

  1. Führe die obigen Schritte zum Erstellen einer JAR-Datei aus
  2. Suche die Anwendung "Jarbundler" und starte sie.
  3. Auf dem Reiter "build information" kannst du optional ein Icon für dein Programm auswählen. Das Icon muss im .icns-Format angegeben werden. Verwende den Icon Composer (am Mac vorinstalliert) um ein PNG-Bild in das .icns-Fomat zu konvertieren.
  4. Danach wähle die JAR-Datei mit deinem Scratch-Projekt als Main Class aus.
  5. Klicke auf "Create Application..."
  6. Wähle den Ausgabeordner

SB zu APP über Online Player

Mit Hilfe der XCode-Suite können Scratchprojekte zu einer Anwendung kompiliert werden. Dazu muss das Projekt geöffnet werden und die URL-Adresse zum Einbetten ermittelt werden. Diese URL-Adresse ist dann in eine HTML-Seite mit der UIWebView Cocoa class einzubetten.

Projekt erstellen

Erzeuge als erstes ein Xcode project und benenne es iScratchProj. Ersetze die Datei iScratchProjAppDelegate.h mit folgendem Inhalt:

// Import Cocoa framework
#import <Cocoa/Cocoa.h>
// Import WebKit framework
#import <WebKit/WebKit.h>

@interface iBlobAppDelegate : NSObject <NSApplicationDelegate> {
    // Create the window
    NSWindow *window;
    
    // Get the applet
    IBOutlet id webView;
}
// Get the window
@property (assign) IBOutlet NSWindow *window;

@end

Next, replace to contents of iScratchProjAppDelegate.m with:

#import "iBlobAppDelegate.h"

@implementation iBlobAppDelegate

@synthesize window;

// When the application loaded...
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Add the applet to the screen
    [webView stringByEvaluatingJavaScriptFromString:@"document.write(\"<applet id='ProjectApplet' style='style='position:absolute;left:0;top:-25;' code='ScratchApplet' codebase='http://scratch.mit.edu/static/misc' archive='ScratchApplet.jar' height='387' width='482'><param name='project' value='../../static/projects/<#Username#>/<#id#>.sb'></applet>\")"];
}

@end

Klicke auf die gelbe Sprechblase und gib deine Benutzernamen und die Projekt-ID an (die Nummer am Ende der URL, zum Beispiel http://scratch.mit.edu/projects/Hardmath123/2433673).

SB zu EXE bündeln

Unten seht Ihr alle Schritte nocheinmal aufgezählt. Wenn Du NICHT möchtest, dass Scratch zu sehen ist, wenn Du das Programm schließt, musst du statt Scratch BYOB nutzen.

  1. Gehe im Windows-Menü auf "Run" oder auch auf "Ausführen"
    1. Es sollte sich nun ein Fenster öffnen
  2. Gebe in das Eingabefeld "iexpress" ein.
  3. Nun sollte sich erneut ein Fenster öffnen.
    1. Wähle die erste Möglichkeit und klicke auf "Next".
    2. Wähle nun wieder die erste Möglichkeit.
    3. Gebe nun einen Titel ein. Du kannst dafür einfach den Namen deines Projektes benutzen.
    4. Wähle "No promt".
    5. Falls Du eine Lizenz hochladen willst kannst Du dies hier tun.
    6. Lade nun folgende Dateien auf den Scratch/BYOB-Verzeichniss
      1. Scratch.exe oder BYOB.exe
      2. MPEG3Plugin.dll
      3. Scratch.image oder BYOB.image
      4. ScratchPlugin.dll
      5. UnicodePlugin.dll
      6. Dein Schratch-Programm
    7. Gebe nun in das obere Eingabe-Feld folgendes ein:
      1. Scratch.exe "Scratch.image" presentation "Projektname.sb"
        1. (BYOB.exe "BYOB.image" presentation "Projektname.sb")
      2. Gebe unten "None" ein.
    8. Wähle nun "Hidden" und anschließend "No message" aus.
    9. Gebe nun den Ziel-Pfad ein, und wähle beide Optionen aus.
    10. Wähle nun "No restart"
    11. Du brauchst keine SED-Datei, also kannst Du sie auch weglassen...
    12. Starte nun den Vorgang...


Quellen

  1. https://web.archive.org/web/20120101192818/http://suggest.scratch.mit.edu/forums/60449-suggestions/suggestions/1240331-built-in-scratch2exe



Code zum Einbinden ins Forum:
[wiki=de:Scratch-Projekte portieren und kompilieren]Scratch-Projekte portieren und kompilieren[/wiki]