Bonjour Laurent,
D'abord merci d'avoir pris le temps de répondre à mon message (malgré que tu n'as pas forcément tout le temps libre que tu désires, cf. ta réponse concernant les tutos SFML2 ;) ).
Alors pour illustrer mon problème, voici deux photos d'écrans.
Première image : le programme de test sans la vue :
(http://image.noelshack.com/fichiers/2012/36/1346779230-capture1.png)
Seconde image : le programme de test avec une vue de 380x380 :
(http://image.noelshack.com/fichiers/2012/36/1346779230-capture2.png)
Ici je ne comprend pas deux choses : le déplacement de toute la scène correspond à la vue (donc il me faut alors recalculer les positions), d'autres part il fait un zoom arrière (on voit bien que le pont est beaucoup plus petit).
Alors peut être n'ais-je pas su utiliser les vues correctement. Je te montre le code en question :
#include <iostream>
#include <SFML/Graphics.hpp>
int main (void)
{
using namespace sf;
RenderWindow window( VideoMode(640, 480, 32), "Test Vues" );
Image grass, water, bridge;
Sprite grassSp[300], waterSp[20], bridgeSp[20];
View defaultView, newView;
defaultView = window.GetDefaultView();
window.SetView(newView);
newView.Move(380, 380);
grass.LoadFromFile("grass.png");
grass.SetSmooth(false);
water.LoadFromFile("water.png");
water.SetSmooth(false);
bridge.LoadFromFile("bridge.png");
bridge.SetSmooth(false);
while ( window.IsOpened() )
{
Event event;
while ( window.GetEvent(event) )
{
if (event.Type == Event::Closed)
{
window.Close();
}
}
window.Clear();
int x = 0;
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 20; j++)
{
grassSp[x].SetImage(grass);
grassSp[x].SetPosition(32*j, 32*i);
window.Draw(grassSp[x]);
x++;
}
}
waterSp[0].SetImage(water);
waterSp[0].SetPosition(128, 128);
window.Draw(waterSp[0]);
waterSp[1].SetImage(water);
waterSp[1].SetPosition(160, 128);
window.Draw(waterSp[1]);
waterSp[2].SetImage(water);
waterSp[2].SetPosition(128, 160);
window.Draw(waterSp[2]);
waterSp[3].SetImage(water);
waterSp[3].SetPosition(160, 160);
window.Draw(waterSp[3]);
bridgeSp[0].SetImage(bridge);
bridgeSp[0].SetPosition(320, 320);
window.Draw(bridgeSp[0]);
bridgeSp[1].SetImage(bridge);
bridgeSp[1].SetPosition(384, 384);
window.Draw(bridgeSp[1]);
window.Display();
}
return 0;
}
J'utilises encore la SFML 1.6 par contre, je songe à passer en 2.0 mais j'attend tes tutos pour ne pas être trop largué quoi ;)
Merci d'avance pour ton aide.
P.S. Par contre au passage je me permet une autre question : il est possible de jouer avec les vues afin d'avoir comme un FPS mais en 2D ? Je ne sais pas si c'est une chose possible à faire.