Hallo,
ich hab die Header für das komplette SDL-Paket übersetzt und für PureBasic verfügbar gemacht.
Es gibt auch ein paar Beispiele und einen "Übersetzer" für die Lazy-Foo- SDL-Tutorials
https://lazyfoo.net/tutorials/SDL/ (bitte die Readme lesen).
Mac-User müssen die SDL-Frameworks installieren: Kurzfassung:
Code:
download *.dmg from this files
https://www.libsdl.org/download-2.0.php#source
https://www.libsdl.org/projects/SDL_image/
https://www.libsdl.org/projects/SDL_mixer/
https://www.libsdl.org/projects/SDL_net/
https://www.libsdl.org/projects/SDL_rtf/
https://www.libsdl.org/projects/SDL_ttf/
open the *.dmg
copy "sdl*.frameworks" to /Library/Frameworks/
more infos for example here: https://lazyfoo.net/tutorials/SDL/01_hello_SDL/mac/index.php
Linux-User sind etwas außen vorgenommen, ich hab mit Linux keinerlei Erfahrung. Der Quellcode sollte allerdings vorbereitet sein. Falls das wer ergänzt, bitte Bescheid geben, ich füge das gerne hinzu.
Warum SDL?
Vorteile von SDL sind für mich:
- Mausabfrage funktioniert in Windows auch bei einen Zoom-Faktor >100% auf den Desktop.
- Wechsel zwischen Fenster-Modus, Vollbild-Rahmenloser-Fenster-Modus und Vollbild ohne das man alle Sprites neu laden muss.
- Abspielen von Hintergrundmusik in Format MP3, OGG, etc. (PB weigerte sich, meine OGGs abzuspielen)
- Joystick und Gamepad - Unterstützung inklusive Rumble. Einfach ein PS4, XBOX oder Switch-Pro - Controller anschließen und es wird sofort unterstützt
Wie funktioniert das ganze?
Einfach die sdl2\SDL.pbi xincluden und das Basis-Paket funktioniert sofort. Wichtig, alle Funktionen sind in einen Modul eingebunden, statt bspw. SDL_INIT(#SDL_INIT_VIDEO) muss man dann SDL::Init(SDL::#INIT_VIDEO) eingeben. Für Image die sdl2\SDL_image.pbi" xincluden - muss vor der SDL.pbi passieren, ansonsten meckert die Datei.
Mehr infos in der sdl.pbi
WICHTIG:
Das ist die erste Version. Gut möglich das noch Bugs drin sind, ich hab
https://github.com/GPIforGit/SDL_For_PB/releases