Forum de la communauté SFML

Aide => Général => Discussion démarrée par: Cpl.Bator le Décembre 17, 2014, 11:01:47 pm

Titre: [RESOLU][SFML 2.2 Android] sf::Touch
Posté par: Cpl.Bator le Décembre 17, 2014, 11:01:47 pm
J'arrive sans problème à compiler un programme SFML et à le faire tourner sur mon Galaxy note 3
J'ai fait un petit jeu pour mon fils , le but est d'éclater des bulles de couleurs...
Ca marche nickel sur mon smartphone, en revanche sur ma Tablette (Asus 10.1 ) , j'ai besoin de deux doigts pour les éclater...

la partie ou j'éclate "mes bulles" :

if (sf::Touch::isDown(0) && mTouchFlag == false)
                                {
                                        mTouchFlag = true;
                                        sf::Vector2i position = sf::Touch::getPosition(0,mWindow);
                                        if(explodeBubble(position.x, position.y)==true)
                                        {
                                                for(int p=0; p<99; ++p)
                                                {
                                                        mParticleArray.push_back(Particle(position.x, position.y, mParticleTexture, mTargetColor) );
                                                }
                                                mScore++;
                                        }
                                        else
                                        {
                                                mExplodeSound[5].play();
                                        }
                                }
                               
                                if (!sf::Touch::isDown(0) && mTouchFlag == true)
                                {
                                        mTouchFlag = false;
                                }
là , je sèche...

Sinon , mille merci à la Team pour la version 2.2 , super boulot.
Titre: Re : [SFML 2.2 Android] sf::Touch
Posté par: Laurent le Décembre 18, 2014, 08:08:38 am
Si lors d'un touch unique il ne se passe rien, tu peux vérifier :
- sf::Touch::isDown(i) pour tous les indices possibles (rien n'oblige à ce qu'il soit mappé sur l'indice 0)
- les évènements Event::TouchPressed et Event::TouchReleased, pour voir d'une autre manière s'il se passe quelque chose

D'ailleurs ton code ressemble plus à une gestion des évènements Pressed et Released, pourquoi est-ce que tu t'embêtes avec sf::Touch et un booléen ?
Titre: Re : [SFML 2.2 Android] sf::Touch
Posté par: Cpl.Bator le Décembre 18, 2014, 09:13:48 am
Ok, je vais tester tout les indices possible.
Pour le booléen , c'est pour éviter une rafale de destruction si 2 bulles se chevauche. "one touch, one kill"
Titre: Re : [SFML 2.2 Android] sf::Touch
Posté par: Laurent le Décembre 18, 2014, 09:53:45 am
Citer
Pour le booléen , c'est pour éviter une rafale de destruction si 2 bulles se chevauche. "one touch, one kill"
J'avais bien compris, mais pourquoi ne pas utiliser les évènements ?
Titre: Re : [SFML 2.2 Android] sf::Touch
Posté par: Cpl.Bator le Décembre 18, 2014, 10:26:24 am
parce que...  ;D
en fait j'ai une classe application qui gère les événements, le code plus haut n'est pas dans la même classe.
je ferais une modification pour tester directement avec les événements et voir si cela résout mon problème.
Titre: Re : [SFML 2.2 Android] sf::Touch
Posté par: Cpl.Bator le Décembre 18, 2014, 07:47:01 pm
En passant par les Event cela résoud effectivement le problème.
Je pensais naïvement que l'indice 0 de la méthode statique sf::Touch::isDown() était le premier doigt... ma tablette etant plus grosse , elle en veut 2... gourmande...  :P
En fouillant l'API j'ai vu que sf::Event::TouchEvent fournissait aussi l'indice pour le doigt.
Cela marche nickel sur mes 2 plateformes a la maison.


hs:

petite coquille ici :
http://www.sfml-dev.org/issues-fr.php (http://www.sfml-dev.org/issues-fr.php)

Citer
Vérifiez les official tutoriels (http://www.sfml-dev.org/tutorials/2.2/index-fr.php), tout spécialement les encadrés rouges.[/q]
[/size][/font]
  • Cherchez le forum (http://fr.sfml-dev.org/forums/index.php?action=search) pour des problèmes similaires.[/size][/font]
  • [/l]
    [/font][/color]
Titre: Re : [RESOLU][SFML 2.2 Android] sf::Touch
Posté par: Laurent le Décembre 18, 2014, 08:21:40 pm
En effet rien ne garantit qu'un appui avec un seul doigt utilise l'indice 0. Ceci-dit il faudra vérifier l'implémentation Android, c'est bizarre que ce ne soit pas le cas. Sous iOS par exemple ce serait bien un 0 que tu aurais.

Merci pour les erreurs sur le site. Cette fois je n'ai pas eu le temps de m'occuper des textes, et on dirait que ceux qui l'ont fait n'ont pas été très inspirés pour certaines parties ;D