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

Pages: [1]
1
Graphique / Re: Bandes noires et ratio 16/9
« le: Mars 20, 2018, 06:49:10 am »
Un grand merci à toi! C'est exactement ce dont j'avais besoin.

2
Graphique / Re: Bandes noires et ratio 16/9
« le: Mars 19, 2018, 07:56:48 pm »
J'aimerais toujours avoir le même ratio 16/9 sur ma vue quelquesoit la taille de la fenêtre. Ca implique qu'il y ait des bandes noires autour.. Et aussi il faut que  le zoom de la vue soit le même, pour afficher le même nombre d'éléments tout le temps. J'ai essayé la classe viewport; mais je ne
sais pas comment faire pour obtenir ce que je veux.. Voici l'avancée de mon travail:
-> etape 1 : définir la taille de la vue par "hauteur" en hauteur et "hauteur * 16/9" en largeur
-> etape 2 : définir le viewport pour afficher des bandes noires, pour ne pas déformer la vue. C'est là que je bloque.

3
Graphique / Re: Bandes noires et ratio 16/9
« le: Mars 19, 2018, 07:31:04 am »
Bonjour à toi,
C'est ce à quoi j'avais pensé au début mais... En fait la vue est bien en 16/9, mais elle s'adapte à la fenêtre qui elle n'est pas en 16/9. Donc on obtient une image déformée (as-tu testé avant ?). Ce code est bon, mais insuffisant. Il est la base du script : ensuite, il faut faire en sorte que la vue ne s'adapte pas à la fenêtre, grâce au sf::Viewport. C'est là que je sèche....
Merci en tout cas d'avoir assayé de m'aider!
tidann

4
Graphique / Bandes noires et ratio 16/9
« le: Mars 18, 2018, 07:22:12 pm »
Bonjour à tous,

Avant de commencer, oui je sais qu'il existe déjà des topics posant une question équivalente, mais après beaucoup de recherches, je n'ai trouvé aucune "vraie" solution à mon problème  :(

J'aimerais avoir toujours un ratio 16/9 à la vue de ma fenêtre (quelles que soient ses dimensions), cela grâce aux viewport, mais c'est un énorme casse-tête  :o!  J'ai cherché très longtemps, sans résultat..

Donc, si le ratio de la fenêtre est différent de 16/9 (très très probable), des bandes noires liées au viewport devraient s'afficher. Bien entendu, la vue s'agrandit en fonction de la taille de la fenêtre.

Voici le plus important de mon code :

#include <SFML/Graphics.hpp>
#include <iostream>
#include <cstdlib>
#include <string>
#include <cmath>
#include "TileMap.h"

//fonctions..

#pragma region variables
sf::RenderWindow fenetre;
sf::View vue;
//sprites etc...
#pragma endregion variables

int main()
{

    fenetre.create(sf::VideoMode(1600, 900), "SFML");
    fenetre.setPosition(sf::Vector2i(100, 100));
    fenetre.setFramerateLimit(60);

    vue.setSize(1600, 900);
    vue.setCenter(spritePersonnage.getPosition().x, spritePersonnage.getPosition().y);

    //autres définitions de sprites etc..

    while(fenetre.isOpen())
    {
        sf::Event event;
        while(fenetre.pollEvent(event))
        {
            if(event.type == sf::Event::Closed)
            {
                fenetre.close();
            }
        }

        //Autres événements..

        if (event.type == sf::Event::Resized)
        {
            //c'est ici que tout se joue..
        }

        vue.setCenter(spritePersonnage.getPosition().x, spritePersonnage.getPosition().y);



        fenetre.clear(sf::Color::Black);
        fenetre.draw(map);
        fenetre.draw(spritePersonnage);
        fenetre.setView(vue);
        fenetre.display();
    }

    return 0;
}

//fonctions...

Aussi : mon code est dégoutant, je sais, mais je suis en phase d'apprentissage, j'expérimente :)

Merci de votre aide !

tidann

Pages: [1]
anything