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.


Sujets - Deu sex

Pages: [1]
1
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 !

2
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();
 

3
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.

4
Système / [SFML 1.6] Evenements Souris
« le: Août 30, 2012, 12:00:46 am »
Bonsoir a nouveau, je cree un autre topic assez vite desole, mais je n'ai pas trouve l'information que je cherchais et j'ai vraiment besoin de savoir :

Y a til un moyen de detecter un evenement de type "la souris est dans la fenetre" ou en dehors.
c'est pour eviter l'etat boutton souris toujours presse quand tu reste clique, sors de la fenetre, arrete de cliquer, et reviens dans la fenetre. je me rapelle qu'il y avait un truc en SDL pour tester ca, je n'ai pas trouve d'equivalents en fait.

5
Système / Probleme pour temporiser
« le: Août 28, 2012, 09:23:10 pm »
Bonsoir, deja je prefere prevenir, je suis debutant en C++ et en SFML donc il est tout a fait possible que
j'ai oublie un truc tout con. je suis sous SFML 1.6.

voila mon probleme : je n'arrive pas a rendre le comportement de la gravite independant du nombre d'images par secondes dans ce code :

#include "cl_personnage.hpp"


void Personnage::Sauter()
{
        if(Flag_contact_bas == true)
                Vitesse_verticale = -IMPULSION_SAUT;
}


void Personnage::Droite()
{
        if(Flag_nage == false)
                Vitesse_horizontale = VITESSE_PERSONNAGE;
        else
                Vitesse_horizontale = VITESSE_PERSO_NAGE;
}


void Personnage::Gauche()
{
        if(Flag_nage == false)
                Vitesse_horizontale = -VITESSE_PERSONNAGE;
        else
                Vitesse_horizontale = -VITESSE_PERSO_NAGE;
}


void Personnage::Gravite(float& ElapsedTime)
{
        // gravite "realiste"
        if((Flag_contact_bas == false) & (Vitesse_verticale <= Vitesse_max))
                Vitesse_verticale += (FORCE_GRAVITE*ElapsedTime);

        // alternance de vitesse pour dissocier la gravite dans l'eau et dans l'air
        if(Flag_nage == true)
        {
                Vitesse_max = VITESSE_MAX_NAGE;

                if(Vitesse_verticale >= Vitesse_max)
                        Vitesse_verticale = 1;
        }
        else
                Vitesse_max = VITESSE_MAX;

        Sprite_perso->Move(0, Vitesse_verticale);
}


void Personnage::Mouvement(float& ElapsedTime)
{
        Sprite_perso->Move(ElapsedTime * Vitesse_horizontale, ElapsedTime * Vitesse_verticale);
        Vitesse_horizontale = 0;
}
 


alors que les deplacements droite gauche oui.

ca me rendrait un sacre service si vous pouviez trouver de quoi il s'agit !

quelques precisions, je ne retouche pas a la vitesse verticale en dehors de ce code, sauf pour la remetre a zero a quand je touche le sol si elle est > 0 donc rien a voir avec la chute.
Dans ma boucle de jeu, tout les conditions sont appeles en premier, puis viens la gravite, puis en dernier le mouvement.

Pages: [1]
anything