PureBasic unter Mac

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: PureBasic unter Mac

Beitrag von mk-soft »

1. Programm compilieren
2. Mit rechter Maustaste auf Programm.
3. Paket öffen
4. Ordner und Dateien hinzufügen.

P.S.
Zum testen erst mal eine externen path für Images, etc verwenden.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: PureBasic unter Mac

Beitrag von stevie1401 »

Sodele, noch einmal, weil es so schön ist:
Die Spieler laden sich eine ZIP Datei herunter und entpacken diese.
Der Entpackte Ordner könnte DokoClient heissen.
In diesem DokoClient ist alles drinnen, was man zum spielen braucht, auch die Exe bzw die app beim Mac.

Gibt es eine Möglichkeit, dass ein Mac erkennt, dass er in diesem DokoClient-Ordner bleiben soll und dass er diesen Ordner als exepath erkennen kann?


@mk-soft
Dein Vorschlag verstehe ich nicht.
1. Programm compilieren
2. Mit rechter Maustaste auf Programm.
3. Paket öffen
4. Ordner und Dateien hinzufügen.

Wo genau sind die Dateien dann, wenn ich Ordner und Dateien wo auch immer hinzugefügt habe und mit welchem Befehl finde ich die dann wieder?

(Mac wird langsam zur Zumutung)
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: PureBasic unter Mac

Beitrag von Danilo »

stevie1401 hat geschrieben:Die Spieler laden sich eine ZIP Datei herunter und entpacken diese.
Der Entpackte Ordner könnte DokoClient heissen.
In diesem DokoClient ist alles drinnen, was man zum spielen braucht, auch die Exe bzw die app beim Mac.

Gibt es eine Möglichkeit, dass ein Mac erkennt, dass er in diesem DokoClient-Ordner bleiben soll und dass er diesen Ordner als exepath erkennen kann?
Wenn in dem entpackten Ordner die Unterverzeichnisse wie "inc/sound/" usw. sind:

Code: Alles auswählen

Define exePath.s

exePath = GetPathPart( ProgramFilename() )                              ; kompletter Pfad
Debug exePath
exePath = Left( exePath, Len(exePath) - 16 )                            ; "/Contents/MacOS/" entfernen
Debug exePath
exePath = Left( exePath, Len(exePath) - Len( GetFilePart(exePath) ) )   ; "Appname.app" entfernen
Debug exePath
exePath = Left( exePath, Len(exePath) - 1 )                             ; letztes "/" entfernen
Debug exePath

Debug exePath + "/inc/sound/lobbyeintritt.wav"
Ausgabe:

Code: Alles auswählen

/tmp/PureBasic.0.app/Contents/MacOS/
/tmp/PureBasic.0.app
/tmp/
/tmp
/tmp/inc/sound/lobbyeintritt.wav
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: PureBasic unter Mac

Beitrag von stevie1401 »

Leider bekomme ich es nicht hin.
Kann mir bitte jemand an einem EINFACHEN Beispiel zeigen, wie mein Programm die Unterordner findet?
Noch einmal:
Mein Programm ist in: /stevie/meinprogrammordner/
Die Unterordner, die mein Programm erkennen soll, sind eine Ebene tiefer, in:
/stevie/meinprogrammordner/inc/

Bilder wäre z.b. in
/stevie/meinprogrammordner/inc/bilder/

Ich benötige ein funktionierendes, einfaches Beispiel, wie ich dem Mac-Programm sagen kann wo die Ordner liegen.
Mit Windows und Linux geht es alles einwandfrei, nur mit einem Mac schaffe ich es auch nach stundenlangen probieren nicht :-(
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: PureBasic unter Mac

Beitrag von Danilo »

cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: PureBasic unter Mac

Beitrag von stevie1401 »

Vielen Dank für deine Mühen, Danilo.

In deiner Zip-Datei sind 8 Ordner mit denen ich kaum etwas anfangen kann, aber vielleicht können wir das ja gemeinsam klären.
Ich gehe nun endgültig davon aus, dass es unter Osx NICHT machbar ist, Unterordner zu erkennen.
Stattdessen muss sich der User, der sich meine Spieledatei (exe) herunterläd 8 Ordner selbständig anlegen und dann den Inhalt des Inc-Ordners selbständig hineinkopieren.
Ich glaube kaum, dass das meine Mitspieler können. Die sind schon froh, wenn sie es schaffen eine Datei herunterzuladen und diese zu entpacken.
Jetzt auch noch selbständig eine Ordnerstruktur aufzubauen und bestimmte Dateien selbständig dort hineinzukopieren, erscheint mir nicht machbar.

Gibt es eine andere Programmiersprache, wo man ganz normal eine Exepath unter OSX erkennen kann? Ich gehe mal davon aus, dass OSX das eigentlich erkennen kann und das es sich hier um einen Bug von PB handelt.
Da Exepath unter OSX nicht geht - was in aller Welt kann man eigentlich mit PB für einen Mac programmieren???
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: PureBasic unter Mac

Beitrag von Danilo »

Die Ordnerstruktur ist bei mir so:

Code: Alles auswählen

stevie/
       stevie.pb
       inc/
           bilder/
                  example.png
Der Inhalt von stevie.pb:

Code: Alles auswählen

Global exePath.s

exePath = GetPathPart( ProgramFilename() )                              ; kompletter Pfad
Debug exePath
exePath = Left( exePath, Len(exePath) - 16 )                            ; "/Contents/MacOS/" entfernen
Debug exePath
exePath = Left( exePath, Len(exePath) - Len( GetFilePart(exePath) ) )   ; "Appname.app" entfernen
Debug exePath

UsePNGImageDecoder()

If LoadImage(0, exepath+"inc/bilder/example.png")
    If OpenWindow(0, 0, 0, ImageWidth(0), ImageHeight(0), "Image", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
        
        ImageGadget(0,  0, 0, ImageWidth(0), ImageHeight(0), ImageID(0))
        Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
    EndIf
EndIf
Bei mir wird damit das Bild aus dem Unterordner "inc/bilder/" korrekt geladen und angezeigt.

Welche Versionen von OSX und PB verwendest Du?
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: PureBasic unter Mac

Beitrag von mk-soft »

Bei mir brauchte ich nicht entpacken. Wurde von Finder automatisch nach dem Download ausgepackt.

Bei der Meldung
„stevie_64bit“ kann nicht geöffnet werden, da es von einem nicht verifizierten Entwickler stammt.

Ihre Sicherheitseinstellungen erlauben nur die Installation von Apps aus dem Mac App Store und von verifizierten Entwicklern.
das App mit rechter Maustaste (Kontext) öffnen.

Um die Ordnerstruktur von dem App zu sehen. mit rechter Maustaste (Kontext) Paketinhalt zeigen

Überlege mir ein Tool zu schreiben, welches nach dem Kompilieren automatisch in das App eigene Ordner kopiert.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: PureBasic unter Mac

Beitrag von Danilo »

@mk-soft:
Wird bei Dir das Bild geladen und angezeigt, wenn Du den Source 'stevie.pb' startest?
In der .pb Datei ist target "MacOSX" (statt Console) eingestellt, und auch die Option
"[X] Create temorary executable in the source directory" ist gewählt, so dass es direkt
aus der PB IDE heraus funktioniert.
Habe keinen Anhaltspunkt warum es bei Stevie nicht funktionieren sollte.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: PureBasic unter Mac

Beitrag von mk-soft »

@Danilo

Bei mir funktioniert es wie bei Dir :wink:

Hab mein Tool zu kopieren eigener Daten ins App am laufen. Muss es nur noch etwas hübsch machen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten