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

Messages récents

Pages: [1] 2 3 ... 10 Suivante »
1
Discussions générales / Propecia Liver Enzymes Metabolized Ellkeeddy
« Dernier message par Ellbero le Novembre 09, 2019, 11:24:57 am »
Posologie Cialis 2 5 Mg Viagra Usa Store  generic cialis canada Progesterone Progesterona Menopause Next Day Delivery C.O.D. Cialis Kaufen Levitra What Is Cephalexin For 
2
Général / Créer un .apk avec SFML
« Dernier message par Talchane le Novembre 08, 2019, 03:53:24 pm »
Bonjour à toutes et à tous,
J'ai déjà vu plusieurs sujets concernant Android avec SFML mais aucun ne m'a satisfait.

Je précise que je suis sous linux et que pour compiler un programme, j'effectue une ligne de commande dans le terminal :
" g++ fichier.cpp -lsfml-window -lsfml-graphics -lsfml-system -lsfml-audio".
J'obtient ensuite un fichier .out que j'exécute en faisant "./a.out".
J'ai installé SFML en faisant un "apt-get install".

La question est simple :
Comment puis-je créer un fichier .apk à partir d'un code source c++ / SFML ?

Merci d'avance à celui ou celle qui prendra le temps de me répondre.
3
C / Besoin d'aide afin d'afficher un pixel avec CSMFL
« Dernier message par StevZ le Novembre 06, 2019, 11:58:05 am »
Bonjour,
Comme le titre l'indique j'aimerai si possible un peu d'aide sur l'affichage d'un pixel grâce a CSFML.
J'arrive actuellement à ouvrir une fenêtre et  à la fermé.
Mon but est d'afficher un pixel sur la fenêtre mais je ne comprends pas ce qu'il faut faire, j'ai parcouru plusieurs forum et il faut utiliser un certain framebuffer mais je ne comprends pas ce que c'est .

Voici mon code actuel :

#include <SFML/Graphics.h>
#include <stdlib.h>

int main(void)
{
    sfRenderWindow *window;
    sfVideoMode video_mode;
    sfEvent event;

    video_mode.width = 800;
    video_mode.height = 600;
    video_mode.bitsPerPixel = 32;

    window = sfRenderWindow_create(video_mode,"MyWindow",sfDefaultStyle,NULL);
    while (sfRenderWindow_isOpen(window)) {
        sfRenderWindow_display(window);
        while (sfRenderWindow_pollEvent(window, &event))
            if (event.type == sfEvtClosed)
                sfRenderWindow_close(window);
    }
    sfRenderWindow_destroy(window);
    return 0;
}
4
Audio / Re: Buffer depuis loadFromSamples : Probléme pour lire le sample entiérement
« Dernier message par Biloutte le Octobre 27, 2019, 10:06:06 am »
Pour clore (un temps) le sujet ; je poste ici le code fonctionnel de ma fonction. Sans passer par la création de mon propre thread. J'ai simplement pensé à regarder les exemples fourni lors de l'installation de SFML sur mon disque dur.


#include <vector>
#include <SFML/Audio.hpp>
#include <cmath>
#include <iostream>

int play_note(std::string note = "0")
{
        const double Do = 261.63*1.25;
        const double Re = 293.66*1.25;
        const double Mi = 329.63*1.25;
        const double Fa = 349.23*1.25;
        const double Sol = 391.99*1.25;
        const double La = 440.00*1.25;
        const double Si = 493.88*1.25;
       
        double freq = 0;
        if (note == "0") freq = 0;
        if (note == "DO") freq = Do;
        if (note == "RE") freq = Re;
        if (note == "MI") freq = Mi;
        if (note == "FA") freq = Fa;
        if (note == "SOL") freq = Sol;
        if (note == "LA") freq = La;
        if (note == "SI") freq = Si;
       
        std::vector<sf::Int16> raw; //Tableau de n échantillons de 16bits chacun.
                       
        const unsigned SAMPLES = 1*44100; //Nombre d'echantillons
        const unsigned SAMPLE_RATE = 44100; //Vitesse = Nombre d'echantillons/secondes
                                                                                //Soit ici, 1 secondes
        const unsigned AMPLITUDE = 30000*1.75; // Amplitude max =~Volume crête
       
        const double TWO_PI = 6.28318;
        const double increment = freq/SAMPLE_RATE;
        double x = 0;
        //Écriture de l'onde sonore dans chaque ligne du tableau d'échantillons
        for (unsigned i = 0; i < SAMPLES; i++)
        {
                //équation d'une onde sonore musicale
                raw.push_back(AMPLITUDE * sin(x*TWO_PI));
                x += increment;
        }
        //Load a sound buffer from array raw
        sf::SoundBuffer buffer;
        if (!buffer.loadFromSamples(&raw[0], raw.size(), 1, SAMPLE_RATE))
        {
                std::cerr << "Loading failed!" << std::endl;
                return 1;
        }
    // Display sound informations
    std::cerr << "Note: " <<  note << std::endl;
    std::cerr << " " << buffer.getDuration().asSeconds() << " seconds"       << std::endl;
    std::cerr << " " << buffer.getSampleRate()           << " samples / sec" << std::endl;
    std::cerr << " " << buffer.getChannelCount()         << " channels"      << std::endl;
    // Create a sound instance and play it
    sf::Sound sound(buffer);
    sound.play();
    // Loop while the sound is playing
    while (sound.getStatus() == sf::Sound::Playing)
    {
        // Leave some CPU time for other processes
        sf::sleep(sf::milliseconds(100));
        // Display the playing position
        std::cerr << "\rPlaying... " << sound.getPlayingOffset().asSeconds() << " sec";
        std::cerr << std::flush;
    }
    std::cerr << std::endl << std::endl;
   
    return 0;
}

 

Merci encore Laurent. D'autant que toutes les informations étaient clairement expliquées dans le tutoriel audio du site SFML et la solution dans les exemples donnés lors de l'installation de celles-ci.
5
Audio / Re: Buffer depuis loadFromSamples : Probléme pour lire le sample entiérement
« Dernier message par Biloutte le Octobre 26, 2019, 09:23:10 pm »
Ahhhfff !

Merci Laurent. Effectivement. C'est clairement expliqué. Et devient même évident. Je crois que je vais mettre la fonction dans un thread.

Merci.
6
Audio / Re: Buffer depuis loadFromSamples : Probléme pour lire le sample entiérement
« Dernier message par Laurent le Octobre 26, 2019, 09:07:59 pm »
Ton son s'arrête car l'objet qui contient ses données (sf::Sound) est détruit. Et il est détruit car il est local à la fonction, et que la fonction se termine. C'est pour cela que le tutoriel utilise une boucle avec pause, il faut laisser le temps au son de terminer avant de le détruire. Or là avec une boucle qui s'exécute instantanément, ou au mieux en 400 ms si tu décommentes l'appel à sf::sleep, tu n'as pas le compte.

Deux solutions :
- soit tu veux lire ton son de manière bloquante (ie. que ton programme bloque jusqu'à ce qu'il ait terminé), alors fais une pause (sf::sleep) de la durée de ton son, soit une seconde.
- soit tu veux lire ton son en parallèle (ie. faire d'autres choses pendant qu'il se termine) et alors il faudra le stocker de manière un peu plus persistante que ça, et le détruire lorsqu'il aura terminé.
7
Audio / [Résolu] Buffer depuis loadFromSamples : Lire le sample entiérement
« Dernier message par Biloutte le Octobre 26, 2019, 06:54:25 pm »
Bonjour, et merci par avance de votre aide.

Je souhaite jouer des notes de musique avec sfml. Pour cela, j'ai récupéré le code fourni dans le "sound" tutoriel git.

Mon probléme, et que je ne parvient pas à lire mon tableau d'échantillons entiérement. D'aprés le tuto, je suis obligé de passer par une boucle contenant une pause. Bien que normalement, la taille (=[max]) du tableau et son échantillonnage (nombre de lignes lues/seconde) devrait logiquement suffire à lire la totalité du tableau et donc durer un temps correspondant.

Le probléme de cette pause est que je ne peux bénéficier (directement) du thread "automatique" de sf::sound. Je peux bien évidement le programmer moi-même ; mais je ne comprends pas pourquoi cela ne fonctionnent pas naturellement (en plus de ne pas savoir programmer un thread).

Je vous mets ma fonction :


#include <SFML/Audio.hpp>
#include <cmath>
#include <iostream>

int play_note(std::string note = "0")
 {     
        const double Do = 261.63*1.25;
        const double Re = 293.66*1.25;
        const double Mi = 329.63*1.25;
        const double Fa = 349.23*1.25;
        const double Sol = 391.99*1.25;
        const double La = 440.00*1.25;
        const double Si = 493.88*1.25;
       
        double freq = 0;
       
        if (note == "0") freq = 0;
        if (note == "DO") freq = Do;
        if (note == "RE") freq = Re;
        if (note == "MI") freq = Mi;
        if (note == "FA") freq = Fa;
        if (note == "SOL") freq = Sol;
        if (note == "LA") freq = La;
        if (note == "SI") freq = Si;
       
        const unsigned SAMPLES = 44100; //Nombre d'echantillons
        const unsigned SAMPLE_RATE = 44100; //Vitesse = Nombre d'echantillons/secondes
                                                                //Soit ici, 1 secondes
        const unsigned AMPLITUDE = 30000*1.75; // Amplitude max =~Volume crête
       
        sf::Int16 raw[SAMPLES]; //Tableau de 44100 échantillons de 16bits chacun

        const double TWO_PI = 6.28318;
        const double increment = freq/SAMPLE_RATE;
        double x = 0;
        //Écriture de l'onde sonore dans chaque ligne du tableau d'échantillons
        for (unsigned i = 0; i < SAMPLES; i++)
        {
                raw[i] = AMPLITUDE * sin(x*TWO_PI); //équation d'une onde sonore musicale
                x += increment;
        }
       
        sf::SoundBuffer Buffer;
        if (!Buffer.loadFromSamples(raw, SAMPLES, 1, SAMPLE_RATE))
        {
                 std::cerr << "Loading failed!" << std::endl;
                return 1;
        }
        Buffer.loadFromSamples(raw, SAMPLES, 1, SAMPLE_RATE);
        sf::Sound sound;
        sound.setBuffer(Buffer);
        sound.setLoop(true);
        sound.play();
        int tmps = 0;
        while (tmps < 40)
        {
                //sf::sleep(sf::milliseconds(10));
                tmps++;
        }
        //sound.stop();  //N'a aucune influence et loop = false ou true non plus
        return 0;
}

 
8
Suggestions de nouvelles fonctionnalités / Re: Angles en radians pour Transformable
« Dernier message par Valchap le Octobre 20, 2019, 07:39:46 pm »
Dans ce cas je vais continuer d'utiliser une fonction de conversion.  ;D
9
Suggestions de nouvelles fonctionnalités / Re: Angles en radians pour Transformable
« Dernier message par Laurent le Octobre 19, 2019, 09:25:30 pm »
D'un point de vue de la conception c'est pourtant plus "clean" de centraliser la conversion dans une unique fonction, et de garder une seule version des fonctions dans l'API. C'est juste plus verbeux.
10
Suggestions de nouvelles fonctionnalités / Re: Angles en radians pour Transformable
« Dernier message par Valchap le Octobre 19, 2019, 09:12:45 pm »
Je trouvais un peu plus clean d'ajouter trois méthodes pour les radians que de devoir imbriquer une fonction de conversion à chaque appel des méthodes pour les degrés.
Pages: [1] 2 3 ... 10 Suivante »
anything