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

Android Discussion :

Android ==> Jeux !


Sujet :

Android

  1. #1
    Membre actif
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Par défaut Android ==> Jeux !
    Bonjour à tous ! J'espère que certain vont pouvoir m'indiquer des pistes, parce que personne me répond sur aucun forum... :/

    Alors je m'explique: je suis sous Android Studio et je veux créer un jeu en 2D de ce type là:
    Nom : map.png
Affichages : 639
Taille : 7,9 Ko

    Ce jeu est fais sous flash: une carte composé de plein de petite dalle (carte isométrique en diamant du cou) et le block, c'est le personnage qui se déplace de case en case. Il y a aussi un sélecteur pour savoir sur quelle case je compte cliquer (truc blanc sur une case).

    J'étais donc sous Flash, gentillement, je voulais mon jeu pour navigateur et là PAF, je me prends en pleine gueule une phrase de mon prof que j'ai traduit par: "Rien à casquer des jeux par navigateur, maintenant c'est mobile !"... A mes yeux, faut faire les deux ! Mais je butte niveau mobile.

    J'aimerais donc quelque précision: est-ce que je peux faire ça SANS librairie ? Ou alors il faut en utiliser une ? (Si oui, laquelle )

    Donc ça c'est premièrement et deuxièmement, j'ai une question que j'avais eu du mal à régler sous Flash:

    Vous voyez cette dalle ?:
    Nom : dalle.png
Affichages : 344
Taille : 583 octets
    Elle est belle, oui, je sais.

    Donc elles vont être disposé sur la carte, OK ! Mais j'ai un soucis sous Android (soucis que j'ai pas encore pu rencontrer, parce qu'on peut pas faire des OnClick sur un bitmap à la con -_- mais j'ai besoin de l'aspect théorique pour me rassurer). En effet, cette dalle, si je clique malgré la transformation par BitmapFactory, je peux cliquer sur l'image entière et non juste l'objet coloré que représente la dalle !

    Nom : dalle_explication.png
Affichages : 335
Taille : 515 octets
    En gros ce que je veux, c'est juste cliquer sur la surface bleu... ou alors ne pas pouvoir cliquer sur la surface rose autour ! Juste la dalle ! ONLY DALETTE ! Vous voyez ?

    Donc là: comment je fais ?
    Une âme charitable serait donc la bienvenue !

    Excellente soirée à tous, love YOU !

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Et pourquoi pas le faire en HTML5 directement ?

    Web et mobile d'un coup !

    (de toute manière Flash c'est mort depuis un petit moment).

  3. #3
    Membre actif
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Par défaut
    HTML5, j'aime pas ! Ça peut faire pas mal de chose mais ça ne détrônera pas tout...

    (Me dis pas que Flash est mort, fais pas ça... )

    Mais du coup, en gros, je veux le faire pour pouvoir le publier sur Play Store ! C'est vraiment ce que je veux, mon désir profond d'en ce moment

    Donc, pour mon premier message, as-tu des indications ou peau d'zoeb ?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    sinon t'as les éditeurs de jeux type Unity. Peu de code du coup, mais un peu de pratique pour la prise en main.

  5. #5
    Membre actif
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Par défaut
    Mais moi ce qui m'intéresse, c'est pas le jeu, juste de bouffer du code...

    Mais ça, cette image, c'est la clé de tout pour mon esprit ! Tout repose la dessus: transparence cliquable or not cliquable !

    Je me suis renseigné sur Marmalade, c'est en C++... dommage je tenais à apprendre le java, donc voilà ! Mais en vrai, de mon point de vue d'application: je n'ai nullement besoin de moteur graphique ! JUSTE des "tile" placé de manière isométrique, voilà pourquoi ça coince...

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Si tu as besoin des 2 plateformes web et mobile , pour un jeu qui semble assez simple html5 est la solution. Suffit ensuite de packager ta page html dans une webview et tu la publie sur le play store et même l'app store si ca te chante.
    Quant tu vois ce qu'il est possible de faire en js actuellement : http://threejs.org/examples y'a pas de raison de s'en priver.

    (Me dis pas que Flash est mort, fais pas ça... )
    C'est pourtant le cas , ca m'etonnerais pas que dans les années à venir les navigateurs abandonnent son support ...

    Pour en revenir à ton problème original , tout est évidemment possible sous android.
    Une librairie n'est pas indispensable mais c'est beaucoup de boulot sans. Puisqu'il faut créer une View et tout dessiner et gérer les intéractions. Parce que positionner des Imageview les une à coté des autres n'est pas une solution viable

    Coté librairie il y'en à 2 très connues qui sont andEngine et Libgdx. unity me semble un peu trop puissant pour ton besoin.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre actif
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Par défaut
    Merci de ta réponse !

    Je me suis penché sur le HTML 5 et encore une fois, j'ai le même soucis que partout !

    Reprend l'exemple de mes dalles: mes PNG ne me permette pas de cliquer au travers de l'invisibilité, comme Flash...

    Sauf si je déclare des MAP AREA sur les zones bleu mais ça, ça me fout les boules ! J'aimerais JUSTE pouvoir cliquer sur les dalles, pas tout leurs cadre... juste la dalle (en gris), surtout pas le rose tout autour !

    Si là tu arrives à me décrire comment on fais, OK ! Sans ça, je vois toujours l'utilité d'utiliser le HTML5 comparé à autre chose parce que c'est toujours autant le bazar... :/

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Ta bitmap se trouve à une position XY dans un canvas. Quand tu clic sur ton canvas tu es donc capable de savoir si tu clic dans le cadre d'une tuile ou non
    Pour chaque tuile tu devrais être capable de savoir où se trouve la zone bleue et , donc savoir si ton clic est sur la dalle ou non.

    En pseudo code ca donnerait quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI clic
        POUR toutes_les_dalles
            SI position_clic EST DANS position_dalle
                SI position_clic EST DANS position_carre_bleu
                    Dalle cliquée
    Note que c'est valable quelque soit le langage ou la plateforme.

    Je vois pas bien ce que BitmapFactory vient faire dans l'histoire ^^

    Sauf si je déclare des MAP AREA sur les zones bleu mais ça, ça me fout les boules !
    On fait pas de maparea dans un canvas -_- . J'espère que t'envisage pas de positionner tes bitmap comme si c'était de simple image ?! Que ce soit html5 ou android il faut travailler avec un canvas et gérérer les événement au niveau du canvas (c'est là que sont utile les lib 2D puisque qu'elles facilitent grandement la création et la gestion d'objet sur un canvas)
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre actif
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Par défaut
    Aaaaaaaaah ouais d'accord je vois mieux ! En plus j'ai vu ton exemple de truc en HTML5, c'est incroyable tout ce qu'on peut faire avec !

    Pour ce qui est du canvas et tout le tremblement, je sais pas, j'y ai jamais touché, ça ne s’appliquait pas à l'ActionScript 3, donc... du coup je suis plus dans le coup là !

    Donc si j'ai bien compris j'ai un canvas avec au centre la dalle et sur cette dalle, juste une zone (bleu) que je dois retrouver en cliquant grâce à ton "pseudo-code"

    Mais imaginons, chaque canvas est collé, ça va pas m'embêter pour cliquer sur la dalle de derrière ?? Même si je connais ça position ? Du coup mon algo sera vraiment gros juste pour déterminer si je clique sur la zone bleu ou sur le reste ! O.o

    (Sauf si j'ai encore manqué une information...)

    Aurais-tu un exemple de script à me filer ? Ou d'autres explication complémentaire ?

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Un canvas c'est une zone de "dessin". Donc tu n'as pas un canvas par dalle mais un canvas pour ton jeu qui contient tous ce que tu veux bien y dessiner.
    Dans un canvas tu peux en général dessiner des formes et des bitmap.

    Un exemple minimaliste en android qui dessine un cercle :

    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
    public class MyView extends View {
             public MyView(Context context) {
                  super(context);
                  // TODO Auto-generated constructor stub
             }
     
             @Override
             protected void onDraw(Canvas canvas) {
                super.onDraw(canvas);
                int x = getWidth();
                int y = getHeight();
                int radius;
                radius = 50;
                Paint paint = new Paint();
                paint.setStyle(Paint.Style.FILL);
                paint.setColor(Color.WHITE);
                canvas.drawPaint(paint);
                paint.setColor(Color.RED);
                canvas.drawCircle(x / 2, y / 2, radius, paint);
            }
         }
    C'est le même principe en javascript et donc html5.

    Donc ca veux dire qu'il faut dessiner toutes tes dalles et gérer les événements dans ton canvas. Si tu as un canvas qui fait 800*600 tu auras donc des coordonnées d'événement comprise entre 0,800 et 0,600.
    Il faut donc développer l'intelligence qui permet de savoir si un clic en 51,32 appartient à un des éléments dessiné ou non , sachant qu'on peut tout à fait superposer les éléments ...

    C'est très long et fastidieux et c'est pour ça qu'on fait appel à des librairies pour se simplifier un peu la vie.
    Dans ton cas il faudrait t'orienter vers un moteur de jeux 2D qui en plus de gérer le dessins et les événement des objets , optimise les performances en utilisants par exemple opengl pour faire travailler la puce graphique au lieux du cpu.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre actif
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Par défaut
    Ouais bah déjà moi je cherchais à faire un canvas par dalle, donc là au moins...
    Sauf que là, cette connerie de Canvas n'a pas d’événement OnClick, donc au moins c'est réglé...

    Du coup là je part sur un moteur 2D qui a pas l'air trop mal, en C++ et qui s'appelle Marmalade, je vais commencer à tater tout ça !

  12. #12
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Citation Envoyé par pipitt05000 Voir le message
    Sauf que là, cette connerie de Canvas n'a pas d’événement OnClick, donc au moins c'est réglé...
    Ca tu le règles au niveau de l'écran (Activity) avec :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        float x = event.getX();
        float y = event.getY();
        switch(event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
            //ici, tester si les coordonnées x,y du clic correspondent à une dalle dessinée sur le canvas
            return true;
        }
        return false;
    }
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  13. #13
    Membre actif
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2012
    Messages : 30
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Ca tu le règles au niveau de l'écran (Activity) avec :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        float x = event.getX();
        float y = event.getY();
        switch(event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
            //ici, tester si les coordonnées x,y du clic correspondent à une dalle dessinée sur le canvas
            return true;
        }
        return false;
    }
    Et oui du coup c'est ce que j'ai fais mais sur un surfaceview ! Mais là c'est parfait ! Merci à vous tous les gars

Discussions similaires

  1. Recherche Développeur Android - Mini jeux
    Par eckinox dans le forum Android
    Réponses: 3
    Dernier message: 26/01/2015, 13h54
  2. Android NDK (C++), Jeux et Inputs
    Par kremvax dans le forum Android
    Réponses: 2
    Dernier message: 30/12/2010, 14h14
  3. Performance des jeux sous android
    Par Baton10 dans le forum Android
    Réponses: 2
    Dernier message: 04/11/2010, 19h43
  4. Jeux multijoueurs sur android
    Par samiconnect dans le forum Android
    Réponses: 0
    Dernier message: 02/09/2010, 00h11

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