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

Développement 2D, 3D et Jeux Discussion :

[2D isometric world] Screen to Isometric coords - Isometric coords to tile index


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Pourquoi votre site demande t'il ça ??
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Pourquoi votre site demande t'il ça ??
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 0
    Points
    0
    Par défaut [2D isometric world] Screen to Isometric coords - Isometric coords to tile index
    Bonjour,

    Je me suis lancé il y a peu dans l'aventure de créer mon propre éditeur isométrique (2D donc).
    N'étant pas matheux, j'ai errer sur google, stackoverflow et ici même (http://www.developpez.net/forums/d78...-isometriques/) à la recherche de formules.
    L'affichage, la gestion des offsets/layers fut un succés, jusqu'au moment fatidique de la gestion du click sur une tile... Cela fait maintenant un mois que j'essaye de pouvoir cliquer sur mes tiles(rires).

    (Dans ce post, je ne prendrais pas en compte les offsets)

    J'ai des tiles de dimensions TILE_SIZE * TILE_SIZE (bien sur, de 32 * 32, 64 * 64, etc...).
    Pour les biens des tests, j'ai donc choisi 64 * 64.

    Nom : base tile.png
Affichages : 196
Taille : 620 octets

    La formule isometricToScreenCoordinates(i, j, TILE_SIZE) me permet de placer mes tiles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x = (j - i) * (TILE_SIZE / 2);
    y = (j + i) * (TILE_SIZE / 4);
    Ce que je souhaite faire :
    1) Screen coordinates => Isometric coordinates => tile_index (Chaque tile étant des informations stockées dans un tableau (vector<Tile>) dans un layer(Class))
    Puis, avec le sprite mouse map :
    Nom : mouse map.png
Affichages : 199
Taille : 655 octets
    2) Detecter sur quelle tile on clique(cette partie ne me pose pas de problèmes), et changer tile_index en fonction(La partie blanche correspond au tile_index trouvé en 1).


    Mon problème : les formules du lien pour 1) ne fonctionnent pas pour mon projet(ou je ne les comprends peut-être pas assez bien ?), et je ne sais pas comment trouver tile_index avec i, j
    PS: J'ai entendu parler de sqrt, matrix de transformations, etc. ... : Etant entrain de me remettre doucement dans les mathématiques, ce n'est pour le moment pas vraiment de mon niveau hélas.

    Merci de votre lecture, pour toutes informations manquantes, n'hésitez pas à me le demander.

    Bonne journée !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2009
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2009
    Messages : 416
    Points : 1 443
    Points
    1 443

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Pourquoi votre site demande t'il ça ??
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Pourquoi votre site demande t'il ça ??
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    Tu crois que je l'ai trouvé où le lien :') .


    Ca fait juste des jours que je parcours des tonnes de liens, si je poste ici, c'est parce que malgré ça je n'ai pas réussi.

    Pas cordialement du tout.

    Edit : en plus, ce lien je l'ai déjà parcouru
    Je dois faire une liste de ce que j'ai trouvé pour pouvoir poster quand même ?
    Dans le lien ils parlent de
    RECUPERATION DES COORDONNEES DE LA TILE CLIQUER ( position en pixels )
    sauf que j'aimerais à partir de ça, trouver le tile_index.

  4. #4
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Si tu avais pris la peine de lire les posts complètement, tu aurais vu que j'avais fait un post qui donne une formule qui fonctionne avec tout type de tile:
    http://www.developpez.net/forums/d15...d-isometrique/

    A partir de cette formule, tu obtiens les coordonnée (x,y) de ton tile dans un tableau. Il ne te reste plus qu'a convertir ces données en index:
    X_SIZE étant le nombre de tile affichés sur ta map pour une ligne.

    Soit dit en passant, une conversion d'index de tableau deux dimensions vers un tableau une dimension, c'est un peu le B-A-BA de la manipulation des tableaux donc bon .....

    Soit dit en passant 2, utiliser un vector pour représenter un tableau en deux dimension, c'est pas terrible, terrible. Tu vas te compliquer la vie, pour avoir des perf un chouilla meilleurs, et encore.
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Pourquoi votre site demande t'il ça ??
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Pourquoi votre site demande t'il ça ??
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    Si tu avais pris la peine de lire les posts complètement
    ( . . . )

    Vous pouvez clore ce post, je ne demanderais plus d'aide ici.

    Aurevoir.

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/07/2015, 01h21
  2. TileMap isometric problème rendu
    Par killernicolas dans le forum SFML
    Réponses: 1
    Dernier message: 29/04/2014, 09h03
  3. Rendu isometric, ordre d'affichage
    Par fab9292 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 04/05/2013, 00h38
  4. [Recherche] Pathfinder Isometric
    Par synthoxx dans le forum C#
    Réponses: 0
    Dernier message: 23/06/2009, 23h20
  5. Comment faire un splash screen pour son application?
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/04/2007, 15h28

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