Seite 1:
Danilo hat geschrieben:GetPathPart(ProgramFilename()) gibt aber den richtigen Pfad zurück. Bei einem Konsolenprogramm
ist das direkt der Pfad wo das Programm liegt. Ein .app Programm ist aber eine spezielle Ordnerstruktur,
die als Paket behandelt wird.
Deine Sounds musst Du in die .app hinein kopieren, wenn Du sie mit exepath+"/inc/sound/lobbyeintritt.wav"
laden möchtest. Der komplette Pfad ist dann "Your.app/Contents/MacOS/inc/sound/lobbyeintritt.wav".
stevie1401 hat geschrieben:OK, fangen wir von vorne an:
[...]
Wie bekomme ich ein funktionierendes Exepath unter Mac hin?
Ich muss zwingend im meinem eigenen Programmordner bleiben und kann nicht vom Benutzer erwarten, dass er irgendwelche Dateien in irgendwelche Images kopiert. Wie auch immer das überhaupt geht.
Seite 2:
stevie1401 hat geschrieben: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.
[...]
(Mac wird langsam zur Zumutung)
stevie1401 hat geschrieben: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/
stevie1401 hat geschrieben:In deiner Zip-Datei sind 8 Ordner mit denen ich kaum etwas anfangen kann, aber vielleicht können wir das ja gemeinsam klären.
Das eine .app eine spezielle Ordnerstruktur ist, hatte ich schon auf Seite 1 gesagt.
stevie1401 hat geschrieben:Ich gehe nun endgültig davon aus, dass es unter Osx NICHT machbar ist, Unterordner zu erkennen.
Die Antwort, wie Du den korrekten Pfad bekommst, hatte ich Dir direkt vor Deinem Posting gegeben. Als Code und als fertiges .zip.
Du scheinst die Antworten gar nicht richtig zu lesen, oder verstehst Du keine Einzige der Antworten?
stevie1401 hat geschrieben: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.
Das ist kompletter Quatsch, wie ich Dir mit stevie.zip bereits gezeigt hatte.
stevie1401 hat geschrieben: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???
Seite 3:
stevie1401 hat geschrieben:Wie heißt die ausführbare, compilierte Datei die man mit einem Mac-PB erstellt und wie kann ich diese als DATEI und NICHT als Ordner mit 1000 Unterordnern weitergeben?
stevie1401 hat geschrieben:Also normal ist das wirklich nicht.
[...]
KEINE ausführbare EXECUTABLE Datei vom MAC.
[...]
Dabei ist die Anforderung eigentlich schon zu DOS-Zeiten machbar gewesen. Selbst dort konnte man schon Daten komprimieren ohne Zusätze hinzuzufügen.
Und nach wie vor keine AUSFÜHRBARE EXECUTABLE zu finden, die mit Purebasic für den MAC erstellt wurde.
Gibt es evtl. irgendwo ein Video, wo man herausfinden kann, wie man Purebasic für Mac ernsthaft benutzen kann?
Danilo hat geschrieben:Die ausführbare Datei, also die eigentliche Executable, ist immer in "Deine.app/Contents/MacOS/".
Um nur eine EXE zu bekommen, ohne das .app-Paket, müsstest Du als Konsolenprogramm kompilieren.
stevie1401 hat geschrieben:Und kann ich dann das _MACOSX löschen? Das stört mich ungemein, da Windows/Linux-User sehr verwirrt sind, wenn sie das sehen müssen.
stevie1401 hat geschrieben:Im Moment sitzen wir hier vor dem Mac-Rechner und plagen uns für einfachste Dinge stundenlang herum.
[...]
aber wenn selbst ein eingefleischter Macuser, sich sehr schwer tut, einfachste Dinge für den Mac zu programmieren, dann stimmt da meines Erachtens irgendwas nicht.
Dem stimme ich zu, irgendwas stimmt da nicht. Nur sehe ich, wie ich bereits sagte,
das Problem nicht bei Mac OS X oder PB für Mac.
Nach knappen 3 Stunden hattest Du noch keine Antwort erhalten, also geht's gleich weiter:
stevie1401 hat geschrieben:Da es dafür anscheinend keine Lösung gibt, beginne ich gerne von vorne und mache eine APP nur für den Mac.
Eine APP ist, so haben wir inzwischen gelernt, gar kein PROGRAMM, sondern ein DatenContainer mit vielen Unterordnern.
Ja, das hatten wir auf Seite 1 schon gelernt.
stevie1401 hat geschrieben:Welcher Ordner nun genau zum AUSFÜHREN des Programmcodes zuständig ist, finden wir vielleicht noch heraus.
Das hatte ich Dir schon auf Seite 1 und 2 beantwortet, siehe oben.
stevie1401 hat geschrieben:Wo muss ich WÄHREND des PROGRAMMIERENS meinen inc-Order ablegen, damit ich WÄHREND des Programmierens auf diese DATEN zugreifen kann und mit WELCHEM Befehl komme ich an diese Daten heran und wie bekomme ich, wenn ich eine MAC-APP ERSTELLT habe, den inc-Ordner dort hinein wo er hin muss und wie heisst der ORT, wo der inc-Ordner hinein muss?
Hallo? Genau das haben wir auf den letzten 3 Seiten ausführlich besprochen!
Schon auf Seite 1 habe ich Dir gezeigt wo Du den Ordner innerhalb der .app hin kopieren kannst.
mk-soft hat nun auch noch ein IDE-Addon geschrieben, um das zu automatisieren. Damit wird
beim Kompilierungsprozess (beim Erstellen der .app) der Inhalt eines externen Ordners automatisch
in die .app hinein kopiert. Siehe weiter unten.
Ich habe Dir aber auch gezeigt, das Du Deinen inc-Ordner ausserhalb der .app anlegen
kannst, inklusive Beispiel wie man dann darauf zugreift. Das war es doch, was Du ursprünglich wolltest.
Wie oft sollen wir das bereits Gesagte denn noch wiederholen?
Seite 4:
stevie1401 hat geschrieben:ts-soft hat geschrieben:Ich verstehe also absolut nicht, warum Du da so ein Aufhebens drum macht?
Weil wir es nicht einmal zu zweit verstehen, deshalb.
Wir können die Mac-Logik nicht nachvollziehen und deshalb auch nicht programmieren.
stevie1401 hat geschrieben:Kannst du mir denn beantworten wo ich während des PROGRAMMIERENS meinen inc-Ordner platzieren muss, damit er WÄHREND des Programmierens erkannt und benutzt werden kann?
Die Logik muss man erst einmal verstehen:
Es wird erwartet, dass Dateien in einem Container enthalten sind, der beim Programmieren gar nicht vorhanden ist.
Ich verstehe das nicht.
Also wo in aller Welt soll ich WÄHREND des Programmierens mit meinen Daten und Ordnern hin?
stevie1401 hat geschrieben:Seufz...
Kannst mir denn jemand beantworten wo ich während des PROGRAMMIERENS meinen inc-Ordner platzieren muss, damit er WÄHREND des Programmierens erkannt und benutzt werden kann?
Noch immer nicht die verschiedenen Möglichkeiten verstanden?
Wenn Du es nach 4 Seiten noch nicht verstanden hast, kann Dir vielleicht niemand helfen.
Vielleicht bist Du unhelfbar oder so.
Im Ernst: Die ersten 3-4 Seiten enthalten alles was Du wissen musst. Lese die Antworten dort
vielleicht noch einmal oder zweimal durch, bis Du die Zusammenhänge verstehst und es *Klick* macht.
Seite 5:
stevie1401 hat geschrieben:Da wir beide wie der Ochs vorm Berg vor die PB-IDE standen und überhaupt nicht damit klar kamen, obwohl das Programmieren mit der gleichen Sprache unter Windows und Linux recht einfach war, zeigt, dass das Programmieren mit einem Mac sehr wenig intuitiv ist und wohl erst recht nichts mit Dummheit zu tun hat, wenn man etwas nicht versteht.
Die PB IDE ist unter Mac die Gleiche wie unter Windows und Linux. Die Titlebar sieht aber anders aus.
stevie1401 hat geschrieben:Wenn in einer Mac-IDE steht, dass man eine EXECUTABLE erstellen kann, gehe ich davon aus, dass es eine ausführbare DATEI wie unter Windows und Linux ist.
Dass sich ein Mac da nicht an STANDARDS hält. kann ich nicht wissen.
Wir hatten ja schon auf Seite 1 und 2 geklärt, dass eine .app
die executable ist.
Die .app ist das Ding, wo man per Doppelklick darauf das Programm startet - so wie
eine .exe unter Windows mit Doppelklick ausgeführt wird.
stevie1401 hat geschrieben:Das Programmieren mit Purebasic unter Windows und Linux finde ich klasse und auch für Anfänger sehr geeignet.
Mit einem Mac zu programmieren empfinde ich als eine Zumutung, denn ohne IT-Fachwissen scheint man da nicht einmal die einfachsten Dinge machen zu können.
Ich denke PB selbst ist auf dem Mac genauso wie auf Windows und Linux. Kann da keinen
großen Unterschied sehen. Kleinere Unterschiede gibt es zwischen allen PB-Platformen.
Unterschiede wie Pfade, '/' oder '\' in Pfaden, und wo Einstellungsdateien gespeichert
werden usw., sind einfach Systembedingt überall anders.
Nur die API-Programmierung auf dem Mac finde ich mit PB nicht so toll. Das liegt allerdings einfach daran,
dass das Mac API und speziell das Cocoa GUI-Framework zu 98% Objekt-Orientiert ist. Dieses riesige OOP-System
mit PB zu nutzen geht eben nicht direkt, da PB OOP nicht richtig unterstützt.
Muss man immer mit CocoaMessage und Strings arbeiten. Quasi so wie mit COMate auf Windows.