1
Projets SFML / SFML et integration Steam
« le: Août 25, 2012, 01:33:22 am »
Bonjour,
Etant entrain de coder un jeu avec la SFML, et ayant envie d'utiliser la plateforme Steam, je me suis lancé dans l'interop Steam et SFML avec l'implementation OpenSource de Steamwork : https://bitbucket.org/VoiDeD/open-steamworks/
Après quelques jours j'en suis arrivé à afficher les avatar de mes amis steam avec la SFML en quelques lignes de code grace a un wrapper que je code en parallèle pour simplifier l'utilisation du SDK.
Vous pouvez trouver le code du wrapper ici : https://github.com/yamashi/EasySteam
Il faut Open Steamworks et Boost pour compiler et utiliser la librairie (cross plateform).
Il y a un exemple sur son utilisation dans sample.
Pour ce qui est de l'affichage des avatars voici un petit snippet :
Je rajouterai du contenu au fur et a mesure que j'avance dans la conception de mon jeu (dont je parlerai aussi une fois en beta publique).
Max
Etant entrain de coder un jeu avec la SFML, et ayant envie d'utiliser la plateforme Steam, je me suis lancé dans l'interop Steam et SFML avec l'implementation OpenSource de Steamwork : https://bitbucket.org/VoiDeD/open-steamworks/
Après quelques jours j'en suis arrivé à afficher les avatar de mes amis steam avec la SFML en quelques lignes de code grace a un wrapper que je code en parallèle pour simplifier l'utilisation du SDK.
Vous pouvez trouver le code du wrapper ici : https://github.com/yamashi/EasySteam
Il faut Open Steamworks et Boost pour compiler et utiliser la librairie (cross plateform).
Il y a un exemple sur son utilisation dans sample.
Pour ce qui est de l'affichage des avatars voici un petit snippet :
std::string data;
std::for_each(EasySteam::Interface::GetInstance().GetFriends()->Begin(), EasySteam::Interface::GetInstance().GetFriends()->End(),
[&data](EasySteam::Friend::pointer pPtr)
{
if(pPtr->GetPersonaName().find("__NOM DUN AMIS__") != std::string::npos)
data = pPtr->GetAvatar(EasySteam::Avatar::LARGE)->GetRGBA();
});
sf::Image img;
img.create(184,184,(sf::Uint8*)&data[0]);
sf::Texture tex;
tex.loadFromImage(img);
sf::Sprite sprite(tex);
std::for_each(EasySteam::Interface::GetInstance().GetFriends()->Begin(), EasySteam::Interface::GetInstance().GetFriends()->End(),
[&data](EasySteam::Friend::pointer pPtr)
{
if(pPtr->GetPersonaName().find("__NOM DUN AMIS__") != std::string::npos)
data = pPtr->GetAvatar(EasySteam::Avatar::LARGE)->GetRGBA();
});
sf::Image img;
img.create(184,184,(sf::Uint8*)&data[0]);
sf::Texture tex;
tex.loadFromImage(img);
sf::Sprite sprite(tex);
Je rajouterai du contenu au fur et a mesure que j'avance dans la conception de mon jeu (dont je parlerai aussi une fois en beta publique).
Max