CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Sfml 1.6 et xcode

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
klieur
klieur
Niveau 10
16 octobre 2012 à 12:42:50

bah, avec un chemin du type: "Dossier/fichier" pour ouvrir un fichier avec mon programme au lieu de mettre le chemin absolu "C:/........./Dossier/fichier"

pilo1488
pilo1488
Niveau 10
16 octobre 2012 à 19:52:55

mmm je suis pas sur de comprendre, mais peut etre tu fait références au fichiers ressources de ton programme?

Sous osx, un programme est "packé" dans un bundle (un repertoire en fait), dans lequel se trouve ton executable (equivalent .exe sous windows), les lib annexes, et les ressouces.

Tu peux pas faire un truc du genre FILE *f = fopen("blabla.png", "r");

il faut récupéré le chemin vers les resources de ton prog (je regarderai demain le bout de code qu'il faut en C++, et je le posterai ici).

Ensuite pour que soit copié une ressource (image, son, enfin ce que tu veux) dans le bundle de ton appli quand tu compile, il suffit de l'ajouter à ton projet dans xcode.

klieur
klieur
Niveau 10
17 octobre 2012 à 07:04:57

et pour recuperer un fichier non inclu dans le bundle (pour pas le compiler avec) que j'ai mit dans le dossier test_SFML (le projet que tu m'as donné) , c'est possible également ? :(
(genre par exemple pour enregistrer les données une partie :( )

(ah et comment changer le nom de l'application ? :noel: )

pilo1488
pilo1488
Niveau 10
17 octobre 2012 à 12:44:22

pour enregistrer une partie, il faut que tu le mette dans le repertoire Document associé a ton appli. La aussi c'est un chemin imposé par OSX. Je te file le code pour récupéré ces 2 chemins en C++ :

il faut inclure

  1. import "CoreFoundation/CoreFoundation.h" (#import ca devrait passé, sinon tu met #include, ca fera pas de diff dans un prog en c++)

et ensuite:
CFBundleRef mainBundle;
// Get the main bundle for the app
mainBundle = CFBundleGetMainBundle();
CFURLRef dataURL;
// Look for a resource in the main bundle by name and type.
dataURL = CFBundleCopyBundleURL(mainBundle);
CFStringRef path;
path = CFURLCopyPath(dataURL);
char pathString[1024];
CFStringGetCString(path, pathString, 1023, kCFStringEncodingUTF8);

string bundlePath = string(pathString);

dataURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
path = CFURLCopyPath(dataURL);
CFStringGetCString(path, pathString, 1023, kCFStringEncodingUTF8);
pathString[strlen(pathString) - 1] = 0;
string resourcePath = bundlePath + string(pathString);

et resourcePath contient le chemin vers le repertoire contenant les ressources de ton appli (donc tu accède a un fichier via le chemin resourcePath + "/" + nomdufichier)

pour les documents, heeu je cherche pour le faire en c++ direct :) (en Objective C c'est facile, c'est peut etre meme une solution plus interessante).

Pour changer le nom de l'app, quand tu as la liste des fichiers du projet affiché, tout en haut, tu as la racine du projet qui s'appelle test_SFML, tu double clique sur ce nom, et tu le change :) ca va te demander de changer d'autre chose, tu accepte, et voila :)

pilo1488
pilo1488
Niveau 10
17 octobre 2012 à 12:44:43

pardon pas double clique! mais un "clique long", a la "mac".

klieur
klieur
Niveau 10
17 octobre 2012 à 13:30:36

ok, merci, je regarde ca,
aussi, j'ai un autre probleme (oui encore :noel: )

ce code là:
sf::Font Arrial;
if (!Arrial.LoadFromFile("arial.ttf")){

}

m'affiche dans la console:
Failed to load font "arial.ttf" (cannot open resource)

caelacanthe
caelacanthe
Niveau 10
17 octobre 2012 à 13:37:50

essaye "helvetica.ttf", pour rire? :hap:

klieur
klieur
Niveau 10
17 octobre 2012 à 13:37:53

Aprés avoir changer le nom, il compile plus et me donne cette erreur:
could not read data from '/Users/bourquard/Documents/programmes/SpaceShift/
test_SFML/test_SFML-Info.plist':
The file “test_SFML-Info.plist” couldn’t be opened because there is no such file.

klieur
klieur
Niveau 10
17 octobre 2012 à 13:45:19

bon, j'ai rerenomé mon dossier test_SFML, avant de renommer uniquement l'application avec le nom que je voulais et ca remarche :)

par contre "helvetica.ttf", ca marche pas non plus :hap:

caelacanthe
caelacanthe
Niveau 10
17 octobre 2012 à 13:55:44

au pire, t'as un annuaire des polices installées sur le système quelque part dans les accessoires, go le consulter, il serait étonnant qu'arial y soit. :oui:

klieur
klieur
Niveau 10
17 octobre 2012 à 14:09:21

bah, c'est pas des polices intégrés à SFML ? :noel:

pilo1488
pilo1488
Niveau 10
17 octobre 2012 à 14:16:01

klieur: pour charger un fichier ttf comme ca, il faut que tu donne le chemin complet à SFML, c'est a dire le resourcePath qui proviens du code que je t'ais collé au dessus + le nom du fichier ;)

caelacanthe
caelacanthe
Niveau 10
17 octobre 2012 à 14:26:24
  1. klieur Voir le profil de klieur
  2. Posté le 17 octobre 2012 à 14:09:21 Avertir un administrateur
  3. bah, c'est pas des polices intégrés à SFML ? :noel:

:d) sûrement pas, à cause des histoires de license, ils vont chercher celles que t'as sur ton pc. :oui:

klieur
klieur
Niveau 10
23 octobre 2012 à 12:35:00

Bon, j'ai eu un peu de temps pour coder et je n'arrive toujours pas à ouvrir mon fichier:
J'ai mit un fichier map que j'ai mit dans Resources/Levels
Juste avant la tentative d'ouverture, voici le chemin que j'ai fait afficher:
/Users/bourquard/Library/Developer/Xcode/DerivedDa
ta/Spaceshift-czjqpjszqenzwuhaqqvsgdkrdcuz/Build/P
roducts/Debug/Spaceshift.app/Contents/Resources/Le
vels/Map.lvl

(ah et aussi, dans quel dossier sont contenus les polices pour les charger ? :noel: )

godrik
godrik
Niveau 30
23 octobre 2012 à 14:25:38

klieur, sans message d'erreur et plus de contexte, c'est difficile de devinner ce qui peut se passer.

pilo1488
pilo1488
Niveau 10
23 octobre 2012 à 15:36:08

klieurs: le chemin semble correcte pour le fichier resources, mais es tu biensur de le copier à cette endroit?

dans le code, essais d'y acceder par "Map.lvl" au lieu de "Levels/Map.lvl"

pour les polices, tu peux aussi en télécharger sur le net, et les mettres dans tes ressources.

klieur
klieur
Niveau 10
24 octobre 2012 à 16:27:32

Pilo1488
Posté le 23 octobre 2012 à 15:36:08
klieurs: le chemin semble correcte pour le fichier resources, mais es tu biensur de le copier à cette endroit?

dans le code, essais d'y acceder par "Map.lvl" au lieu de "Levels/Map.lvl"

Ah bah ca marche
mais il gere pas les sous dossiers dans le dossier ressources ? :(

pilo1488
pilo1488
Niveau 10
25 octobre 2012 à 09:38:26

"mais il gere pas les sous dossiers dans le dossier ressources ?"
Si :) mais ca c'est un peu la galère (sur nos projets, on s'embete pas et 90% des ressources on les place directement dans le repertoire resources).

Pour faire ca, il faut que tu aille dans les propriétés de ton projets (tu clique sur l'élément tout en haut dans l'arboréscence des sources, la ou il y a le nom de ton projet, et tu clique ensuite sur ton target). La dans l'onglet Build Phases, il faut que tu rajoute une phases "copy" (tu clique sur "Add build phase" et tu choisis "Add copy Files". Et tu configure cette nouvelle phase pour copier dans Resources et dans un sous repertoire de celle ci (tu verra tu as un champ pour spécifier).

Cette notion de resouces, propre a OSX, c'est un peu chiant parfois. Par contre l'avantage c'est que ensuite ton programme c'est un bundle (un repertoire en fait), et c'est ce que tu distribue (et pour l'installer, il suffit de le copier dans le dossier application).

klieur
klieur
Niveau 10
26 octobre 2012 à 17:41:45

Pour configurer le sous reperoire, c'est dans le Subpath ?
Parcque j'ai mit destination : Resources et j'ai essayé de mettre un subpath vers mon sous repertoire Levels mais ca marche pas :(

pilo1488
pilo1488
Niveau 10
26 octobre 2012 à 17:44:37

oui c'est ca, c'est subpath.

essais de faire un clean de ton projet (des fois xcode ne met pas a jour correctement la copie des resources).

Tu peux aussi vérifier que les ficheirs sont au bon endroit, en regardant a l'interieur du bundle.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware