2010-08-08 17 views
1

Je suis en train de coder un jeu simple en utilisant SFML dans Xcode. J'ai un .png d'un bloc que je veux utiliser dans un sprite. À l'heure actuelle, je dois taper le chemin complet à l'image dans l'extrait de code ci-dessous:Obtenir les ressources d'un projet Xcode en C++

sf::Image blockImage; 

if (!blockImage.LoadFromFile("/Users/me/Development/Tetris/images/block.png")) { 
    cerr << "Could not load block image." << endl; 
    App.Close(); 
} 

Je préfère ne pas avoir à coder en dur l'emplacement de chaque image dans mon jeu comme celui-ci. Je sais que les projets Xcode peuvent avoir des 'Ressources', mais je n'ai jamais utilisé cela auparavant, et d'après ce que j'ai pu faire avec Google, cela ne concerne que les projets qui utilisent les frameworks d'Apple. Puis-je ajouter mon image en tant que ressource? Comment pourrais-je obtenir son emplacement et l'utiliser dans mon code?

Merci!

Répondre

1

Votre question n'est pas tout à fait claire , mais je vais essayer d'expliquer du mieux que je peux:

En ce qui concerne le système d'exploitation, Ressources est juste un dossier dans un ensemble d'applications, la seule chose spéciale à ce sujet est que lorsqu'une application démarre, les ressources dossier est le chemin d'accès par défaut du fichier (appelé le répertoire de travail).

Cela signifie que si vous avez une image dans votre fichier applications de ressources, vous pouvez le charger avec:

ou

blockImage.LoadFromFile("block.png"); 

Lorsque vous utilisez cet appel, les contrôles OS si le bloc. png est dans la racine de votre disque dur, mais ne pas le trouver puis vérifie le répertoire de travail *

Si vous souhaitez changer le répertoire de travail, vous pouvez utiliser la fonction unix commune

chdir(const char *path); 

qui sous Mac OS X est fourni à partir de:

#include <unistd.h> 

Qu'est-ce que Arjit faisait référence à est une fonctionnalité très pratique dans Xcode où vous pouvez faire de la phase de construction d'un fichier de copie dans une cible donnée et avoir copier des fichiers ou même des dossiers dans le dossier Ressources d'une application.

Espérons que cela éclaircit les choses!

* Il se peut que vous vérifiez d'abord le répertoire de travail, mais vous n'êtes pas sûr.