Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Deu sex

Pages: [1] 2 Suivante »
1
DotNet / Re : Besoin d'aide pour configurer un projet Visual Studio
« le: Juin 25, 2015, 09:10:11 am »
Ca fonctionne ! (jai juste du rajouter les usings qu'il fallait)

Je n'ai pas tout compris de ce que fais le code mais ca fonctionne ! Merci beaucoup !

2
DotNet / Besoin d'aide pour configurer un projet Visual Studio
« le: Juin 24, 2015, 04:36:59 pm »
Bonjour :)

Je m'explique, je suis en train d'essayer de creer un projet visual studio utilisant SFML.net, j'ai bien suivi les explications que jai trouve sur internet, il vaut inclure les references des libs, et ensuite ajouter les extlibs a la racine du projet, puis les configurer en mode "copy if newer"

Jusque la ca fonctionne pas de problemes, sauf que je trouve cela assez moche, ca copie plein de dll de partout dans le projet et dans les dossiers debug et release quand j'execute.

J'aurais aime savoir si il etait possible de stocker ces dites dlls extlibs dans un dossier et de faire en sorte que l'exe aille chercher les dlls dans ce dossier lors de l'execution du programme.

J'ai essaye tout un tas de choses et cela ne semble pas fonctionner pour le moment.

Merci d'avoir lu :)

Edit : je me suis dit que des exemples visuels pouvaient etre plus parlants, alors voici la methode normale, qui fonctionne bien (avec le dossier Librairies vide):

http://img15.hostingpics.net/pics/820894sfmlworks.png

et la version que j'essaye de faire, ou mes extlibs sont dans le dossier Librairies, et la l'exe ne les trouve pas, meme en ayant reference le path dans les proprietes de mon projet :

http://img15.hostingpics.net/pics/688296sfmldoesntwork.png

PS : desole pour l'absence d'accents, je n'ai qu'un clavier qwerty souis la main !

3
Graphique / Re : Question à propos de la vertical synchronisation
« le: Février 06, 2014, 05:30:00 pm »
Des news ! quand je met un framerate limiter a 60 FPS depuis nvidia inspector, l'effet de latence est fortement reduit ! un peu comme si sans le framerate limiter, il y avait 'trop' d'images par secondes à traiter pour la vsynch.

Je t'invite a tester mon code tel qu'il est, puis ensuite de mettre le framerate limiter de nvidia inspector à 60 FPS, et observe la difference :)

maj : effectivement, quand je met le framerate limiter de nvidia inspector a 65 fps au lieu de 60, la latence importante reviens, dommage qu'on puisse pas la mettre a 61 fps car a 60, il y a quand meme un peu de stuttering etant donné que ca ossille entre 59 et 61 fps.

4
Graphique / Re : Question à propos de la vertical synchronisation
« le: Février 06, 2014, 02:35:53 pm »
J'ai remarqué que j'avais également ce genre de problemes sous Leadwerks Engine (un moteur 3D) des que j'active la v-synch, j'ai une latence assez enorme sur les mouvements de la souris, peut etre que c'est que de l'input lag, mais quand meme cest assez fort comme input lag. Vivement la G-Synch...

5
Graphique / Re : Question à propos de la vertical synchronisation
« le: Février 04, 2014, 04:21:25 pm »
Bien sur :) voila, j'ai même enlevé d'autres choses qui ne servaient pas, j'ai teste et j'ai le même problème.


#include "librairies.h"

int main(int argc, char* argv[])
{
#ifdef _DEBUG
        sf::RenderWindow RWindow(sf::VideoMode(RESX, RESY), "Steering Seek Behavior", sf::Style::Close | sf::Style::Titlebar);
#else
        sf::RenderWindow RWindow(sf::VideoMode(RESX, RESY), "Steering Seek Behavior", sf::Style::Fullscreen, sf::ContextSettings(24, 8, 8));
#endif
       
        RWindow.setVerticalSyncEnabled(true);
        //RWindow.setFramerateLimit(60);
        RWindow.setMouseCursorVisible(true);
        RWindow.setKeyRepeatEnabled(false);

        sf::Event Event;

        sf::CircleShape MyAgent;
        MyAgent.setRadius(RADIUS);
        MyAgent.setOrigin(RADIUS, RADIUS);
        MyAgent.setFillColor(sf::Color::Cyan);
        MyAgent.setOutlineThickness(3);
        MyAgent.setOutlineColor(sf::Color::Red);

        while (RWindow.isOpen())
        {
                while (RWindow.pollEvent(Event))
                {
                        switch (Event.type)
                        {
                        case sf::Event::Closed:
                                RWindow.close();
                                break;

                        case sf::Event::KeyPressed:
                                switch (Event.key.code)
                                {
                                case sf::Keyboard::Escape:
                                        RWindow.close();
                                        break;

                                default:
                                        break;
                                }

                        default:
                                break;
                        }
                }

                float PosAgentX = (float)sf::Mouse::getPosition(RWindow).x;
                float PosAgentY = (float)sf::Mouse::getPosition(RWindow).y;
                MyAgent.setPosition(PosAgentX, PosAgentY);

                RWindow.clear(sf::Color::Black);
                RWindow.draw(MyAgent);
                RWindow.display();
        }

        return EXIT_SUCCESS;
}
 

6
Graphique / Re : Question à propos de la vertical synchronisation
« le: Février 04, 2014, 02:38:37 pm »
Je te passe mon code, j'ai fait un effort pour l’écourter le plus possible, je l'ai teste bien sur :)


#include "librairies.h"
#include "cl_Agent.hpp"


int main(int argc, char* argv[])
{
#ifdef _DEBUG
        sf::RenderWindow RWindow(sf::VideoMode(RESX, RESY), "Steering Seek Behavior", sf::Style::Close | sf::Style::Titlebar);
#else
        sf::RenderWindow RWindow(sf::VideoMode(RESX, RESY), "Steering Seek Behavior", sf::Style::Fullscreen, sf::ContextSettings(24, 8, 8));
#endif
       
        RWindow.setVerticalSyncEnabled(true);
        //RWindow.setFramerateLimit(60);
        RWindow.setMouseCursorVisible(true);
        RWindow.setKeyRepeatEnabled(false);

        sf::Event Event;

        Agent MyAgent;

        while (RWindow.isOpen())
        {
                while (RWindow.pollEvent(Event))
                {
                        switch (Event.type)
                        {
                        case sf::Event::Closed:
                                RWindow.close();
                                break;

                        case sf::Event::KeyPressed:
                                switch (Event.key.code)
                                {
                                case sf::Keyboard::Escape:
                                        RWindow.close();
                                        break;

                                default:
                                        break;
                                }

                        default:
                                break;
                        }
                }

                float PosAgentX = (float)sf::Mouse::getPosition(RWindow).x;
                float PosAgentY = (float)sf::Mouse::getPosition(RWindow).y;
                MyAgent.SetPosition(PosAgentX, PosAgentY);

                RWindow.clear(sf::Color::Black);
                RWindow.draw(MyAgent.Circle);
                RWindow.display();
        }

        return EXIT_SUCCESS;
}
 

7
Graphique / Re : Question à propos de la vertical synchronisation
« le: Février 04, 2014, 11:38:58 am »
Un peu comme si tu avais 150 ms dans un jeu en multi. Oui et j'ai bien 60 FPS dans les 2 cas (60-64 dans le cas du framerate limit 60). Effectivement jai un test avec seulement l'agent, son repositionnement et l'affichage. Je peux mettre le code complet (sans les sources des classes bien sur) si tu le souhaite, il n'est pas tres long :)

8
Graphique / Question à propos de la vertical synchronisation
« le: Février 04, 2014, 10:42:30 am »
Bonjour  :)

Je suis actuellement en train de développer une toute petite application ou je contrôle à la souris un disque représenté par une sf::CircleShape, et plein de sf::CircleShape suivent se disque :) (c'est pour préparer le terrain au steering).

Quand j'ai cette combinaison :

RWindow.setVerticalSyncEnabled(false);
RWindow.setFramerateLimit(60);
 

Mon disque se déplace bien en temps réel par rapport à la souris. Mais si j'ai juste :

RWindow.setVerticalSyncEnabled(true);  // a 60 Hz
//RWindow.setFramerateLimit(60);
 

Je remarque qu'il y a une latence importante entre la position de ma souris et mon disque.
Pour mettre a jour la position de mon disque par rapport à la souris je fais :

float PosAgentX = (float)sf::Mouse::getPosition(RWindow).x;
float PosAgentY = (float)sf::Mouse::getPosition(RWindow).y;

MyAgent.SetPosition(PosAgentX, PosAgentY);
 

MyAgent étant une classe contenant le sf:CircleShape du disque.
Puis je fais un affichage tout ce qu'il y a de plus classique :

RWindow.clear(sf::Color::Black);

RWindow.draw(MyAgent.Circle);

RWindow.display();
 

9
Discussions générales / Re : SFML Game Development -- Un livre sur SFML
« le: Décembre 05, 2013, 05:27:28 pm »
Ok tres bien,  merci pour les reponses :)

10
Discussions générales / Re : SFML Game Development -- Un livre sur SFML
« le: Décembre 05, 2013, 03:30:42 pm »
Ok super :) je connais les concepts de base du C++ et un peu plus mais j'ai juste eu 1 cours théorique (très bien expliqué cela dit) sur le C++ 11, ducoup c'est bien que ce soit expliqué :)

Quel IDE est utilisé dans ce livre ? je compte utiliser Visual Studio 2013 mais je sais que son implémentation du C++ 11 n'est pas totale seulement partielle. Jusqu'a présent je n'ai eu aucun probleme de compilation avec les libs SFML 2.1 pour Vusial 2012 sur Visual 2013 donc je pense que ca devrait aller de ce coté la.

11
Discussions générales / Re : SFML Game Development -- Un livre sur SFML
« le: Décembre 05, 2013, 03:15:05 pm »
Bonjour, je suis débutant en C++ et j'avoue être très intéressé par le livre, j'ai plusieurs questions pour savoir a quoi m'en tenir.

Si on achète le livre, peut on également avoir accès gratuitement à la version numérique ou c'est un achat à part ?

J’imagine que vu qu'il s'agit d'un shooter en vue de dessus, il doit y avoir au moins un chapitre dédié a la physique (gestion de collisions, forces appliqués, vecteurs...) est elle faite complètement à la main ou a l'aide d'une librairie OpenSource comme Box2D par exemple ?

Est-ce que le code C++ un peu avancé/nouveau est brièvement expliqué ? Pour donner un exemple, imaginons qu'a un moment lors de la création d'une classe on utilise pour une méthode un passage par référence constante au lieu de par référence tout court, est ce qu'on est censé comprendre par nous même pourquoi le choix est judicieux dans ce cas, ou alors c'est brièvement expliqué ? Est ce que les utilisations du C++ 11 sont mises en valeur ou on considère que le lecteur connais déjà le C++11 ?

Merci d'avoir pris le temps de lire tout ca :)

12
Graphique / Re : Vue par defaut décalée de 1 pixel en x vers la droite ?
« le: Décembre 04, 2013, 03:58:17 pm »
waw, tricky ! Je ne pensais pas du tout que ca fonctionnait comme cela !

voici ducoup ma nouvelle methode :

void Grille::ActualiserGrille()
{
        VertexBufferHorizontal.resize(0);
        VertexBufferVertical.resize(0);

        //////// Renseigne les deux vertex buffers en fonction des points
        VertexBufferHorizontal.reserve(NbrCasesY + 1);

        for (int y = 0; y <= NbrCasesY; ++y)
        {
                VertexBufferHorizontal.push_back(sf::VertexArray(sf::PrimitiveType::LinesStrip, NbrCasesX + 1));

                for (int x = 0; x <= NbrCasesX; ++x)
                {
                        VertexBufferHorizontal[y][x].position.x = TousLesPoints[y][x].x + 0.5f;
                        VertexBufferHorizontal[y][x].position.y = TousLesPoints[y][x].y + 0.5f;
                        VertexBufferHorizontal[y][x].color = sf::Color::Cyan;
                }
        }

        VertexBufferVertical.reserve(NbrCasesX + 1);

        for (int y = 0; y <= NbrCasesX; ++y)
        {
                VertexBufferVertical.push_back(sf::VertexArray(sf::PrimitiveType::LinesStrip, NbrCasesY + 1));

                for (int x = 0; x <= NbrCasesY; ++x)
                {
                        VertexBufferVertical[y][x].position.x = TousLesPoints[x][y].x + 0.5f;
                        VertexBufferVertical[y][x].position.y = TousLesPoints[x][y].y + 0.5f;
                        VertexBufferVertical[y][x].color = sf::Color::Cyan;
                }
        }
        ////////////////
}
 

Et ca marche !
Merci beaucoup :)

et en plus je viens de remarquer que le fameux pixel en bas a gauche s'affiche desormais :)

En fait la fenetre va positionner les vertex entre chaque ligne de pixels affichables c'est ca ?

13
Graphique / Vue par defaut décalée de 1 pixel en x vers la droite ?
« le: Décembre 04, 2013, 12:23:19 pm »
Bonjour, alors c'est vraiment un detail, mais j'ai l'impression que la vue de base liée à la RenderWindow est décalée de 1 pixel vers la droite.

Je m'explique, jai créé une grille dynamique avec 2 tableaux dynamiques de Vertex Arrays que j'affiche en mode LineStrip, par soin j'ai bien affiché les positions de chaque points de tous les Vertex Arrays, les poins de la premiere collone sont bien tous a 0 en x, et la ligne n'est pas affichée, par contre, les points de la premiere ligne qui sont eux aussi a 0 en y sont bien affichés. Au debut j'ai cru que j'avais fait une erreur d'affichage, mais quand je décale la vue de 1 pixel vers la gauche, la fameuse premiere colonne apparaît !

Meme comportement peu importe la resolution (aparament) et wide&fullscreen.

Il est (toujours) possible que j'ai fait une erreur stupide de programmation, je vais donc poster certaines parties de mon code :

Voici la partie ou je crée la fenetre, ma console de debug m'affiche bien 400 et 300 comme centre de vue pour la vue par defaut :

#ifdef _DEBUG
        sf::RenderWindow rWindow(sf::VideoMode(800, 600), "Pathfinding with SFML", sf::Style::Close | sf::Style::Titlebar);
#else
        sf::RenderWindow rWindow(sf::VideoMode(800, 600), "Pathfinding with SFML", sf::Style::Fullscreen);
#endif
        rWindow.setVerticalSyncEnabled(false);
        rWindow.setKeyRepeatEnabled(false);

        sf::View VueDeBase(rWindow.getView());

#ifdef _DEBUG
        std::cout << "Coordonnees centre vue par defaut X : " << VueDeBase.getCenter().x << ", y : " << VueDeBase.getCenter().y << std::endl;
#endif
 

Voici la partie ou je crée ma grille (courage !)
void Grille::ActualiserGrille()
{
        VertexBufferHorizontal.resize(0);
        VertexBufferVertical.resize(0);

        //////// Renseigne les deux vertex buffers en fonction des points
        VertexBufferHorizontal.reserve(NbrCasesY + 1);

        for (int y = 0; y <= NbrCasesY; ++y)
        {
                VertexBufferHorizontal.push_back(sf::VertexArray(sf::PrimitiveType::LinesStrip, NbrCasesX + 1));

                for (int x = 0; x <= NbrCasesX; ++x)
                {
                        VertexBufferHorizontal[y][x].position = TousLesPoints[y][x];
                        VertexBufferHorizontal[y][x].color = sf::Color::Cyan;
                }
        }

        VertexBufferVertical.reserve(NbrCasesX + 1);

        for (int y = 0; y <= NbrCasesX; ++y)
        {
                VertexBufferVertical.push_back(sf::VertexArray(sf::PrimitiveType::LinesStrip, NbrCasesY + 1));

                for (int x = 0; x <= NbrCasesY; ++x)
                {
                        VertexBufferVertical[y][x].position = TousLesPoints[x][y];
                        VertexBufferVertical[y][x].color = sf::Color::Cyan;
                }
        }
        ////////////////
}
 

j'ai enleve les std::cout pour afficher les points juste apres la creation, mais je peux t'assurer qu'ils valent bien 0 en x sur la premiere colonne.

Et voici la partie ou j'affiche ma grille

void Grille::AfficherGrille(sf::RenderWindow& rWindow)
{
        for (int y = 0; y <= NbrCasesY; ++y)
        {
                rWindow.draw(VertexBufferHorizontal[y]);
        }

        for (int y = 0; y <= NbrCasesX; ++y)
        {
                rWindow.draw(VertexBufferVertical[y]);
        }
}
 

Quand je fais ceci, la premiere colonne de ma grille ne s'affiche pas (voir piece jointe "grille_decalee.png")
mais si je remplace ma fonction d'affichage par ceci :

void Grille::AfficherGrille(sf::RenderWindow& rWindow)
{
        // 399 au lieu de 400 pour realiser le decalage de la vue

        sf::View dView(sf::Vector2f(399, 300), sf::Vector2f(800, 600));
        rWindow.setView(dView);

        for (int y = 0; y <= NbrCasesY; ++y)
        {
                rWindow.draw(VertexBufferHorizontal[y]);
        }

        for (int y = 0; y <= NbrCasesX; ++y)
        {
                rWindow.draw(VertexBufferVertical[y]);
        }
}
 

la grille s'affiche correctement ! (desole pour le dView pas passe par reference ^^ c'est juste pour tester ^^)
(voir piece jointe "grille_recalee.png")

Autre chose aussi, dans ma grille, le pixel tout en bas a gauche de la grille ne s'affiche pas, j'ai l'impression que c'est du au fait que en LineStrip, le premier (ou le dernier je ne sais pas) vertex d'un VertexArray n'est pas affiché.

Je précise que je compile sous Visual Studio 2013 avec SFML 2.1 et ses libs 2012.

Ps: désole j'ai beaucoup modifié le post car il y manquait des informations.

14
Discussions générales / Re : sfml et android
« le: Novembre 26, 2013, 07:18:35 pm »
C'est une exellente nouvelle :D

Comment ca va se passer? Ce sera une nouvelle version de SFML (genre 2.2 par exemple) ou un truc a part ?

15
Système / Re : [SFML 1.6] Evenements Souris
« le: Septembre 14, 2012, 06:43:20 pm »
Je suis sur un tp pour mon ecole, sur SFML 1.6 (je passerai a la 2 sur un prochain tp).

ce que je voulais savoir, c'est si on pouvais pas declencher manuellement la remise a zero de l'etat d'une touche en fonction d'un evenement.

genre par exemple, si la souris quitte l'ecran, alors le state du boutton gauche de la souris doit passer a 0.

et desole javais pas remarque mais cest vrai que ma question principale manquais d'informations... en fait je pensais pouvoir m'en sortir seulement avec l'evenement MouseLeft...

Pages: [1] 2 Suivante »