IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres IDE Pascal Discussion :

Librairie pour les écrans tactiles


Sujet :

Autres IDE Pascal

  1. #1
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut Librairie pour les écrans tactiles
    Salut,

    J'ai fait une petite librairie permettant de détecter et utiliser les pressions sur les écrans des téléphones tactiles. De quoi dépanner avant le support de cette fonction dans les prochaines versions de MIDlet Pascal.

    J'ai modifié un de mes vieux programmes midpuzzle pour un test.
    Je cherche des testeurs qui voudront bien me dire si le jeu marche bien sur leurs portables. Si vous pouvez essayer la librairie, je serais ravi d'avoir des retours.

    **Le programme de jeu se trouve en piece jointe ainsi que les librairies. Les exécutables sont le dossiers bin (jad+jar).
    **La librairie est la classe Lib_pointer.class. Pour que votre programme fonctionne, il faudra ajouter les deux autres classes FW.class et MM.class dans le jar apres compilation; ce qui est faisable avec winrar par exemple.

    Les fonctions disponibles dans la librairie sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    {*********************************************************
    *** equivalent pascal de la librairie lib_pointer.class **
    *** http://www.darrylsite.com/                        ****
    **********************************************************}
    UNIT pointer;
     
    INTERFACE
     
     {**
     **determine si l'ecran du telephone est tactile
     **@return 0 si l'ecran n'est pas tactile, sinon une valeur positive
     **}
     function isSupportPointer : integer;
     
     {**
     **determine si l'ecran du telephone support les mouvements (je n'est pas trouvé une meilleur definition :D)
     **@return 0 si l'ecran ne supporte pas les mouvement, sinon une valeur positive
     **}   
     function isSupportMotion : integer;
     
     {**
     **donne la position de la pression en cours sur l'ecran
     **@return la valeur retounee est creee enutilisant la formule x*1000+y
     **donc x:= getPointer div 1000; y:= getPointer mod 1000; 
     ** fonctionne pour une resolution maximun de 999*999.
     ** Si aucune pression n'est en cours, une valeur negative est retournée
     **}   
     function getPointer : integer;
     
     {**
     **donne la position de la derniere pression sur l'ecran
     **Cette fonction utilise un buffer pour stocker les pressions
     **@return la valeur retounee est creee enutilisant la formule x*1000+y
     **donc x:= getPointer div 1000; y:= getPointer mod 1000; 
     ** fonctionne pour une resolution maximun de 999*999.
     ** Si aucune pression n'est en cours, une valeur negative est retournée
     **}     
     function getLastPointer : integer;
     
     {**
     **determine si il y a eu des pressions sur l'ecran du telephone
     **Cette fonction permet de savoir si il y a encore des pressions dans le buffer
     **@return 0 si il n' y a pas eu de pression, sinon une valeur positive
     **}  
     function ispointerpressed : integer;
     
    IMPLEMENTATION
    END.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour

    Bonne initiative
    Je viens de tester vite fait sur 2 Samsung F480 et F490 mais ça me sort "type de fichier non pris en charge", en fait c'est un soucis qui ne concerne pas ton code mais plutôt du modèle du téléphone grrrrrrr. Dès que j'aurai un peu de temps pour faire le bon paramétrage sur le téléphone je testerai le jeu et la lib à l'occasion.

    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par krachik Voir le message
    Bonjour

    Bonne initiative
    Je viens de tester vite fait sur 2 Samsung F480 et F490 mais ça me sort "type de fichier non pris en charge"
    As tu transferé à la fois le jar et le jad? Certains téléphones n'executent que le jad pour l'installation.

    Pour faciliter l'integration des autres classes dans le jar généré à la compilation, j'ai fait un script pour automatiser la chose.
    Le fichier rebuild .zip est en piece jointe.
    Décompresser le fichier dans le repertoire de votre projet. Une fois votre projet compilé dans MIDletPascal, executer le fichier rebuild.bat. Vous pouvez ensuite faire run dans MIdletPascal pour executer le projet dans un emulateur.

    Le repertoire du projet doit ressembler à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    +midpuzzle
      +src
      +res
      +classes
      +bin
      +lib
      -puzzle.mpproj
      -rebuild.bat
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    As tu transferer à la fois le jar et le jad? Certains téléphones n'executent que le jad pour l'installation.
    C'est à moi que tu poses cette question?
    T'inquiètes, dès que j'ai un peu temps et fais le test je te ferai mon retour

    Est-il possible de mettre aussi le code java pour ceux qui s'y intéressent ou pour les amoureux de j2me?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  5. #5
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par krachik Voir le message
    Est-il possible de mettre aussi le code java pour ceux qui s'y intéressent ou pour les amoureux de j2me?
    Le code sera disponible quand j'aurai fini les tests.

  6. #6
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Bonne nouvelle !
    Plus besion de faire des tricks pour utiliser la librarie. La documentation ne disait pas qu'on pouvait mettre des méthodes plublic, private ou constructeur dans la classe de la librairie. Mais vu que ça passe, c'est

    Je poste donc la librairie avec le code java pour ceux qui veulent ajouter des trucs.
    La librairie peut etre utilisée simplement en la copiant dans le dossier \lib situé dans le dossier d'installation de MIDlet Pascal.

    Le résumé des fonctions disponibles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
     
    {*********************************************************
    *** equivalent pascal de la librairie lib_pointer.class **
    *** http://www.darrylsite.com/                        ****
    **********************************************************}
    UNIT pointer;
     
    INTERFACE
     
    {**
     **initialise le support de l'ecran tactile
     **Cette procedure doit etre appelée avant toute autre fonction
     **}
     procedure initTouchScreen;
     
     {**
     **determine si l'ecran du telephone est tactile
     **@return 0 si l'ecran n'est pas tactile, sinon une valeur positive
     **}
     function isSupportPointer : integer;
     
     {**
     **determine si l'ecran du telephone support les mouvements (je n'est pas trouvé une meilleur definition :D)
     **@return 0 si l'ecran ne supporte pas les mouvement, sinon une valeur positive
     **}   
     function isSupportMotion : integer;
     
     {**
     **donne la position de la pression en cours sur l'ecran
     **@return la valeur retounee est creee enutilisant la formule x*1000+y
     **donc x:= getPointer div 1000; y:= getPointer mod 1000; 
     ** fonctionne pour une resolution maximun de 999*999.
     ** Si aucune pression n'est en cours, une valeur negative est retournée
     **}   
     function getPointer : integer;
     
     {**
     **donne la position de la derniere pression sur l'ecran
     **Cette fonction utilise un buffer pour stocker les pressions
     **@return la valeur retounee est creee enutilisant la formule x*1000+y
     **donc x:= getPointer div 1000; y:= getPointer mod 1000; 
     ** fonctionne pour une resolution maximun de 999*999.
     ** Si aucune pression n'est en cours, une valeur negative est retournée
     **}     
     function getLastPointer : integer;
     
     {**
     **determine si il y a eu des pressions sur l'ecran du telephone
     **Cette fonction permet de savoir si il y a encore des pressions dans le buffer
     **@return 0 si il n' y a pas eu de pression, sinon une valeur positive
     **}  
     function ispointerpressed : integer;
     
    IMPLEMENTATION
    END.
    La procedure initTouchScreen doit etre appelée avant toute instruction.
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    program puzzle;
     uses controleur, laVue, procPlateau, pointer;         
    BEGIN
     initTouchScreen;
     controleur.jouer('/puzzle3.png');
    END.
    Fichiers attachés Fichiers attachés

  7. #7
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bon après tout un gymnastique pour installer le jeu sur mon modèle de téléphone , ça marche bien

    J'essayerai de porter ça aussi sur un jeu pour voir ce que ça donne

    Bien joué
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    ça marche nickel sur un GHT G3...ce téléphone n'est pas génial, mais il présente deux énormes avantages à mon sens
    1) il se recharge avec un câble USB classique (livré avec un câble USB qu'on peut brancher sur une prise de courant)
    2) le transfert de fichier se fait en USB avec le téléphone vu comme un disque externe

    donc je colle le fichier jar dans le répertoire Java et il ne reste plus qu'à l'importer dans le menu Jeux et ça roule

    à part ça l'écran tactile ne réagit pas super bien et c'est un peu pénible.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Merci pour avoir pris le temps de tester la librairie.

    Citation Envoyé par Paul TOTH
    ce téléphone n'est pas génial, mais il présente deux énormes avantages à mon sens
    1) il se recharge avec un câble USB classique (livré avec un câble USB qu'on peut brancher sur une prise de courant)
    2) le transfert de fichier se fait en USB avec le téléphone vu comme un disque externe

    donc je colle le fichier jar dans le répertoire Java et il ne reste plus qu'à l'importer dans le menu Jeux et ça roule
    Tu n'es pas entrain de décrire mon portable?

    Citation Envoyé par krachik
    J'essayerai de porter ça aussi sur un jeu pour voir ce que ça donne
    J'attends de voir l'effet sur ton jeu. J'espere que c'est le killer instinct gold que tu codes sous MIDlet Pascal

    Vu qu'on est limité coté passage de variable par réference, je cherchais un meilleur moyen pour recuperer les coordonnées des points (x,y) de la pression sur l'écran. Si on récupère x et y individuellement, il peut arriver qu'on recupere des x et y de deux pressions differentes.
    Pensez vous à un meilleur moyen d'arriver à récupérer ces valeurs sans utiliser des controles un peu lourd?

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2011, 16h49
  2. Réponses: 0
    Dernier message: 12/05/2011, 14h13
  3. Une librairie pour les courbes de bézier ?
    Par thorium90 dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2009, 11h59
  4. librairie pour les creer les ondulettes en C++
    Par hadi_fayad dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 26/10/2007, 17h06
  5. Recherche librairies pour les images
    Par mathieu_t dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 16/08/2004, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo