ich entwickle gerade ein kleines Tool mit dem man PB-code in HTML5 + JavaScript umwandeln kann. Bis jetzt werden noch nicht sehr viele Funktionen unterstützt, für eine kleine Demo reicht es aber.
Alle unterstütze Funktionen/Schlüsselwörter sind in der Datei "INFO.pb" im Archiv aufgelistet
was zu beachten ist:
keine pointer (*ich_bin_ein_pointer)
Arrays dürfen maximal 3 Dimensionen haben
keine eigenen konstante
Repeat/ForEver funktionieren nicht in Proceduren
...
GUI:

1: welche Datei geöffnet werden soll
2: wo die Datei gespeichert werden soll
4: konvertiert und speichert die Datei
5: startet die Datei
6: zeigt Fehler und andere Informationen an
Tipp Dateien können auch durch Drag&Drop geöffnet werden
Zum testen einfach die Beispiele im Ordner "examples" öffnen und Konvertieren oder die fertigen ".html" Dateien öffnen.
Download (231 KB) (aktualisiert am 05.12.2012)
Viel SpaßChangeLog hat geschrieben:[r56] 16:27 05.12.2012 NEW
+ user "libs"
+ box2dweb simple example
[r55] 22:28 04.12.2012 NEW
R StringField
+ Val/ValF/ValD (ValD benutzt parseFloat)
+ GetDeltaTime() / GetFPS() / ChangeFPS()
+ FPS ist jetzt stabil (sofern Rechenleistung ausreicht)
[r54] 15:38 21.09.2012
R \R schon wieder
R "\" in strings werden zu "\\"
R => / =< fehler
R fehler bei Leerzeichen vor </>/=
[r53] 19:12 18.09.2012
R viele bugs
+ output ist jetzt kleiner
[r52] 16:23 15.09.2012
+ Binär-Zahlen z.B. %111110100
+ MouseWheel()
+ LoadFont() nur normal,Bold&Italic
+ DrawingFont()
+ FreeFont()
+ IsFont()
[r51] 23:44 14.09.2012
R \r \R repariert
+ SoundLib ohne channel unterstützung!
+ InitSound()/UseFLACSoundDecoder()/UseOGGSoundDecoder()
+ FreeSound(ID)
+ IsSound(ID)
+ LoadSound(ID,path$ [,flag])
+ PlaySound(ID,[Flag]) gibt immer 'true' zurück
+ SoundPan(ID,Pan)
+ SoundVolume(ID,Volume)
+ StopSound(ID)
[r50] 02:25 11.09.2012
R \R repariert - überschreibt datei ohne zu fragen
+ \q - beendet nach erfolgreicher compilierung automatisch
[r49] 00:23 11.09.2012
R programparameter bugs
+ Sprite3D repariert
+ "INFO.pb" wird jezt automatisch aktualisiert
[vor r49]
examples:
+ "gadget2.pb" zeigt neue gadgets
+ "global_static... test.pb" ...
intern:
+ Static/Global/Shared/Protected sollte jetzt mit variabeln funktionieren (nicht mit lists/arrays)
2D_Drawing:
R DrawAlphaImage - transparent angabe funktioniert jetzt
Sprite:
+ DisplayTranslucentSprite
Sprite3D:
+ CreateSprite3D
+ DisplaySprite3D
+ FreeSprite3D
+ InitSprite3D
+ IsSprite3D
+ RotateSprite3D(ID,Angle [,Mode])
+ Sprite3DQuality
+ ZoomSprite3D
Gadget:
+ TrackBarGadget (nur Chrome, Opera, Safari)
+ TextGadget
+ ProgressBarGadget (nur Opera, Chrome)
+ ImageGadget
+ Set-/GetGadgetState
+ UseGadgetList
+ HyperLinkGadget
Window:
+ ResizeWindow
r40 [21.08.2012]
+ Commandline (1.Source 2.Destination)
+ OpenWindow();alles bis auf "title" wird ignoriert
+ WindowEvent() nur #PB_Event_Gadget
+ GadgetEvent()
+ EventType() nur #PB_EventType_LeftClick,#PB_EventType_LeftDoubleClick #PB_EventType_Focus,#PB_EventType_LostFocus,#PB_EventType_Change
+ StringGadget()
+ ButtonGadget()
+ Set/GetGadgetText()
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
hier mal eine liste aller PB-Libraries und in wie weit ich diese umsetzen könnte:
(Ideen/Verbesserungen/Anregungen/.... dürfen gerne gepostet werden)
Allgemeines:
*pointer/memory wären dank "typed arrays" möglich
- gibt es/-teilweise:
- Array: gibt es teilweise
- Font: geht schon teilweise
- Gadget: gibt es schon ein paar
- Image/ImagePlugin laden und bearbeiten sollte gehen
- Linked List: geht
- Map: geht
- Math: ist fast komplett
- Misc: gibt es teilweise
- Sprite & Screen: teilweise
- Sprite3D: teilweise
- Sound&SoundPlugin: teilweise
- Requester: einige gehen andere könnte man nachbilden
- String: ist fast komplett
- Window: geht teilweise schon
- wäre möglich (teilweise):
- 2D Drawing: (canvas)
- Date
- Http: sollte möglich sein
- Memory: möglich durch typed arrays
- Joystick (Gamepad API)
- Keyboard: geht
- Mouse: geht
- Thread: WebWorker?
- Sort
- Movie: sollte gehen
- Network: websocket?
- Menu
- Toolbar
- Database (PHP)
- StatusBar
- Regular Expression peer JS oder PHP
- Clipboard (für FF)
- Desktop: statt Desktop gibt es die Browserfenster -Eigenschaften zurück
- Drag & Drop
- Ftp (mit PHP)
- wäre über JavaScript-Libraries möglich:
- 3D zeug: webgl/three.js?
- Scintilla: ? da gibt es einen Editor der html5+JS nutzt
- Cipher
- wäre sehr eingeschränkt möglich:
- File: ReadFile könnte durch XMLHttpRequest simuliert werden... man könnte auch die Daten in JS reinkloppen
- Mail: über PHP
- Rest / keine Ahnung / nicht möglich:
- AudioCD
- Console (eventuell simuliert)
- FileSystem (mal schauen wie ich die FileLib realisiere)
- Help
- Library
- Packer
- OnError
- Preference
- Printer (peer JS (eingeschränkt))
- Process
- Serial Port
- SysTray
- XML
- Module
- Palette