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 - brunnerant

Pages: [1] 2 Suivante »
1
Audio / Re : Capture data audio record en temps réel
« le: Novembre 12, 2016, 07:55:28 am »
Dans la documentation, tu peux trouver ça :
Citer
Par défaut, les échantillons audio sont fournis à la fonction membre onProcessSamples toutes les 100 ms.

Donc, je pense que tu as simplement oublié d'appeler la fonction setProcessingInterval(sf::seconds(0.01))

2
Ah zut, j'y avais pas pensé, quel étourdi ! Désolé de te déranger pour une telle broutille ! 8)
En tous cas, merci de ton boulot avec SFML, c'est génial ce que tu fais, continue !

3
Général / Re : Random + collision
« le: Novembre 10, 2016, 10:11:16 pm »
Par hauteur max du terrain, je veux dire la hauteur max de ta texture. Et le test à l'intérieur de la boucle while sert justement à ne pas tester un pixel qui est en dehors de ta texture.

Pour ce qui est de tes trois valeurs de Y je te laisse te débrouiller, cela ne me regarde plus  ;D !

4
Général / Re : Random + collision
« le: Novembre 10, 2016, 08:34:51 pm »
Un truc du genre....  :P

sf::Image terrain = ...;

unsigned int hauteurMaxDuTerrain = ...;

unsigned int x = positionXduTank;
unsigned int y = 0;

while(terrain.getPixel(x, y) == sf::Color::White)//sf::Color::Transparent, si l'arrière plan est transparent
{
    y++;
    if(y == hauteurMaxDuTerrain)//Si on est arrivé en bas de la texture, on ne peut pas aller plus loin
        break;
}

// y est maintenant égal à la hauteur à laquelle placer ton tank (depuis le haut)
 

5
Général / Re : Random + collision
« le: Novembre 10, 2016, 07:19:56 pm »
Oui, ce que tu as proposé me parait fonctionner. Après, cela dépend de comment ton jeu fonctionne. Est-ce que le terrain est stocké en tant que tableau de points ? Ou est ce qu'il est simplement stocké dans une texture, et les pixels transparent sont considérés comme "de l'air" ?

6
Pourtant, j'ai tout connecté pour que ça fonctionne, comme le montre la capture d'écran  :(. C'est bizarre !

7
Général / Re : Grille Hexagonale avec vertex array
« le: Novembre 10, 2016, 12:01:54 pm »
Premièrement, désolé de la réponse tardive, mais comme on dit, mieux vaut tard que jamais ! :P

Je pense que le gros problème avec les hexagones, c'est de définir un système de coordonnées qui tient la route. Ou mettre l'origine ? Que représente les coordonnées X et Y d'un hexagone ? Tu devrais te poser ces questions avant de commencer à implémenter ton projet.

J'ai trouvé une image qui pourrait t'aider :



Tu dois donc d'abord trouver la position de l'hexagone à l'écran en fonction de la position de l'hexagone dans le système de coordonnée. Par exemple, si je te donne l'hexagone 3-5 sur l'image, tu dois être capable de retrouver sa position à l'écran en faisant un peut de maths.
Voici une manière de faire:
Il faut que tu calcule les deux vecteur de ta base (i et j). En gros, il faut que tu calcule le vecteur pour te déplacer d'une unité selon l'axe x, et l'axe y. Ensuite tu n'as plus qu'à calculer la position de l'hexagone à l'aide de ces deux vecteurs.
Donc dans le cas de l'hexagone 3-5, par exemple, tu te déplaces de 3*le vecteur i, et de 5* le vecteur j (je t'ai fait un schéma sur Paint  ;D), et cela te donne la position de l'hexagone depuis l'origine (l'hexagone 0-0).
Pour ensuite calculer la position des sommets d'un hexagone, tu les calcules à partir de la position du centre de cet hexagone, tu devrais résussir

J'espère avoir répondu à ta question, et n'hésite pas à demander si ce n'était pas clair !

8
Graphique / Re : Maps Isométriques Pathfinding
« le: Novembre 09, 2016, 09:47:34 pm »
En fait, il faut simplement utiliser une boucle while, parce que dans l'état actuel, ta fonction followPath ne s'exécute que pour la première case de ton chemin  ;D

9
Général / Re : Random + collision
« le: Novembre 09, 2016, 09:41:09 pm »
Si je comprend bien tu travaille en 3d (faudrait être un peu plus précis). Tu devrais donc normalement stocker ton terrain dans un objet, ce qui devrait te permettre de retrouver la hauteur de ce dernier en un point donné.
Pour placer le tank, tu le place aléatoirement en 2d (vue du haut), puis tu retrouve la hauteur à l'endroit où tu l'as placé, et ça devrait jouer.
J'espère que j'ai réussi à comprendre ce que tu demandais, bonne journée !

10
Graphique / Re : [Résolu] Dessinner un objet à une taille constante
« le: Novembre 09, 2016, 09:35:46 pm »
En fait, il faut que la position de la flèche soit affectée par le niveau de zoom, mais que sa taille non, ce qui complique beaucoup les choses. Je pense donc que la méthode que tu m'as proposé ne fonctionnerait pas :(. Je pourrais tester, mais étant donné que j'ai quelque chose qui fonctionne, inutile d'aller plus loin, surtout que cela n'a pas trop besoin d'optimisations et que je dessine qu'une dizaine de flèches à la fois à l'écran.
Mais merci de ton aide, j'apprécie quand des gens s'intéressent à ce que j'ai fait :D !

11
Général / [Résolu] Problème de linkage SFML-2.4.1
« le: Novembre 09, 2016, 04:14:24 pm »
Bonjour à tous !
J'ai un petit problème de compilation de SFML-2.4.1. Je travaille avec Codeblocks et j'y ai linké sfml de façon statique en suivant le tuto, donc de ce coté là, il ne devrait pas y avoir de problèmes. Le code que j'utilise, c'est le code de base (présenté dans le tuto, donc inutile de le remettre ici).

D'après ce que me dit le terminal, sfml s'est linkée, et le problème, c'est ces undefined reference to xxx, alors que ce ne sont même pas des fonctions que j'utilise. Je ne sais absolument pas d'où tout cela vient, donc dites-le moi !

-------------- Build: Debug in Shaders (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -DSFML_STATIC -g -DSFML_STATIC -std=c++11 -IC:\Data\Programmation\SFML-2.4.1\include -IC:\Users\Antoine\Desktop\SFML-2.0\include -c C:\Users\Minic\Desktop\Shader\main.cpp -o obj\Debug\main.o
mingw32-g++.exe -LC:\Data\Programmation\SFML-2.4.1\lib -LC:\Users\Antoine\Desktop\SFML-2.0\lib -o bin\Debug\Shader.exe obj\Debug\main.o   -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-system-s-d -lopengl32 -lfreetype -ljpeg -mwindows
C:\Data\Programmation\SFML-2.4.1\lib/libsfml-window-s-d.a(JoystickImpl.cpp.obj): In function `ZN2sf4priv12JoystickImpl10initializeEv':
D:/sfml-release/_Sources/SFML/src/SFML/Window/Win32/JoystickImpl.cpp:161: undefined reference to `joyGetPosEx@8'
C:\Data\Programmation\SFML-2.4.1\lib/libsfml-window-s-d.a(JoystickImpl.cpp.obj): In function `ZN2sf4priv12JoystickImpl11isConnectedEj':
D:/sfml-release/_Sources/SFML/src/SFML/Window/Win32/JoystickImpl.cpp:191: undefined reference to `joyGetPosEx@8'
C:\Data\Programmation\SFML-2.4.1\lib/libsfml-window-s-d.a(JoystickImpl.cpp.obj): In function `ZN2sf4priv12JoystickImpl4openEj':
D:/sfml-release/_Sources/SFML/src/SFML/Window/Win32/JoystickImpl.cpp:208: undefined reference to `joyGetDevCapsW@12'
C:\Data\Programmation\SFML-2.4.1\lib/libsfml-window-s-d.a(JoystickImpl.cpp.obj): In function `ZN2sf4priv12JoystickImpl6updateEv':
D:/sfml-release/_Sources/SFML/src/SFML/Window/Win32/JoystickImpl.cpp:266: undefined reference to `joyGetPosEx@8'
C:\Data\Programmation\SFML-2.4.1\lib/libsfml-system-s-d.a(SleepImpl.cpp.obj): In function `ZN2sf4priv9sleepImplENS_4TimeE':
D:/sfml-release/_Sources/SFML/src/SFML/System/Win32/SleepImpl.cpp:41: undefined reference to `timeGetDevCaps@8'
D:/sfml-release/_Sources/SFML/src/SFML/System/Win32/SleepImpl.cpp:44: undefined reference to `timeBeginPeriod@4'
D:/sfml-release/_Sources/SFML/src/SFML/System/Win32/SleepImpl.cpp:50: undefined reference to `timeEndPeriod@4'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 2 second(s))
8 error(s), 0 warning(s) (0 minute(s), 2 second(s))

Merci de votre aide, et amusez vous bien avec SFML !

12
Graphique / Re : ConvexShape Problem
« le: Octobre 21, 2016, 05:23:35 pm »
Si tu retournes ton sf::Sprite et ton sf::Convex par référence, cela veut dire que si l'utilisateur les modifie après coup, cela modifiera les attributs mSrite et mConvex qui sont dans ta classe. Attention à ça, si c'est ce que tu veux c'est très bien, mais dans le cas contraire, je te conseille d'y réfléchir !

13
Graphique / Re : ConvexShape Problem
« le: Octobre 18, 2016, 04:07:12 pm »
Il faut que tu révise tes portées :
  • Les attributs de portée public sont accessible depuis l'extérieur de la classe
  • Les attributs de portée private ne sont pas accessible depuis l'extérieur de la classe
  • Les attributs de portée protected ne sont pas accessible depuis l'extérieur de la classe, sauf si c'est une classe fille
Donc, dans ton cas, c'est parfaitement normal qu'en déclarant mSprite et mConvex comme attributs private tu ne puisse pas y accéder depuis une classe dérivée. Il faut donc les mettre protected.

14
Graphique / Re : Dessinner un objet à une taille constante
« le: Octobre 16, 2016, 03:17:04 pm »
Ce que tu me propose marcherait très bien je te remercie, mais je suis un peu maniaque  ;).
Ce que je veux, c'est que tout soit automatisé et intelligent, et qu'un seul appel à la fonction sf::Draw s'occupe de tout. Ainsi, l'utilisateur est loin de tout ça et peut se soucier d'autres choses.
Au passage, merci de m'avoir clarifié le fonctionnement des vues, je n'était pas au clair sur ce point, et cela m'a permit de résoudre le problème.

La fonction sf::Draw est peut-être un peu "time-consuming", mais je ne dessine pas 10'000 flèches à chaque rafraîchissement d'écran donc ça devrait tenir le coup :

void Arrow::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
    //Transformation interne à la classe
    sf::Transform internalTransform;
    internalTransform.translate(mPos.x, mPos.y).rotate(mAngle).translate(-mArrow[0].position.x, 0);

    //On combine la transformation interne à la transformation passée en paramètre
    sf::Transform fullTransform = states.transform * internalTransform;

    //On dessine le corps de la flèche
    target.draw(&mArrow[0], 2, sf::Lines, fullTransform);

    //Vecteurs représantant le corps de la flèche avant transformation et après
    sf::Vector2f defaultBody = internalTransform.transformPoint(mArrow[1].position) -
                               internalTransform.transformPoint(mArrow[0].position);

    sf::Vector2f transformedBody = fullTransform.transformPoint(mArrow[1].position) -
                                   fullTransform.transformPoint(mArrow[0].position);

    //Facteur de mise à l'échelle de la fenêtre
    sf::Vector2f viewFactor = target.getView().getSize();
    viewFactor.x /= target.getView().getViewport().width * target.getSize().x;
    viewFactor.y /= target.getView().getViewport().height * target.getSize().y;

    //On peut finalement annuler la mise à l'échelle grâce à ces deux facteurs
    fullTransform.scale(defaultBody.x/transformedBody.x * viewFactor.x,
                        defaultBody.y/transformedBody.y * viewFactor.y);

    //Et dessiner la tête de la flèche à l'écran - qui aura donc une taille constante
    target.draw(&mArrow[2], 4, sf::Lines, fullTransform);
}

Merci de ton aide, la prochaine fois j'essaierai de ne pas m'emmêler avec mon post ;D

15
Graphique / Re : Dessinner un objet à une taille constante
« le: Octobre 16, 2016, 11:11:42 am »
C'est bizarre, parce que j'ai ajouté la suite une heure ou deux après le début. Peu importe, merci de ta réponse !

Merci de me faire penser aux vues. En fait je pensait qu'une vue passait simplement un sf::Transform au objets pour les dessiner, mais en fait, c'est différent et c'est pour cela que ça ne marche pas, car je ne prend en compte que le sf::Transform passé en paramètre à la fonction draw

Comment récupérer le niveau de zoom d'une vue ?

Pages: [1] 2 Suivante »