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

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - skarwild

Pages: [1]
1
Général / Re : Conversion coordonnées
« le: Mai 01, 2014, 12:06:59 pm »
En fait j'ai une matrice de tuile et donc chaque tuile a un unique couple de i et j. Je peux calculer leur position à l'écran avec la formule que j'ai mis plus haut. Mon problème c'est lorsque je clique , à partir des coordonées de la souris récupérer la tuile.

2
Général / Conversion coordonnées
« le: Mai 01, 2014, 10:21:09 am »
Bonjour
Je créés un petit jeu isométrique et je n'arrive pas à calculer le numéro de la tuile (ex i = 0 , j =2 )   des objets à partir de leur position à l'écran.
J'ai cette formule pour récupérer leur position à l'écran :
      int x = (j * tile_width / 2) + (i * tile_width / 2);
      int y = (i * tile_height / 2) - (j * tile_height / 2);
mais je sèche pour la formule inverse.
Cordialement

3
Général / Re : TileMap isometric
« le: Avril 29, 2014, 02:18:34 pm »
Merci pour vos réponses , juste une dernière question , à partir d'un carré vu de dessus est il possible de créer une tuile isométrique avec gimp? ou sinon comment faire pour en créer une ?

4
Général / Re : TileMap isometric
« le: Avril 28, 2014, 09:05:27 pm »
j'ai utilisé maVue.setSize(maVue.getSize().x,maVue.getSize().y*2); car quand j'utilise MonSprite.setScale() ça fait des choses bizarre  :-X

5
Général / Re : TileMap isometric
« le: Avril 28, 2014, 06:58:01 pm »
En fait j'ai cherche mais j'arrive pas à donner l'effet aplati aux tuiles , j'ai essayé standart.setSize(standart.getSize().x, standart.getSize().y*2); (avec standart la vue de ma renderWindow) mais le résultat est pas super , si quelqu'un a une idée je suis preneur =)
Voici mon dernier rendu :

mon code pour afficher les tuiles:7
                sprite3.setRotation(45.f);
                int tile_width = 50;
                int tile_height = 50;
                for (int i = 0; i < terrain.length; i++) {
                        for (int j = 0; j < terrain[0].length; j++) {
                                int x = (j * tile_width / 2) + (i * tile_width / 2);
                                int y = (i * tile_height / 2) - (j * tile_height / 2);
                                sprite3.setPosition(x,y);
                                sprite3.setRotation(45.f);
                                g.draw(sprite3);
                        }
                }
 
et pour modifier ma vue :
maVue.setSize(maVue.getSize().x,maVue.getSize().y*2);
ou sinon il faut que j’utilise des tuiles avec une "épaisseur"?

6
Général / Re : TileMap isometric
« le: Avril 28, 2014, 03:01:07 pm »
En fait mon crash venait juste d'une variable ou il manquait un "x" ...
Là je voudrais avoir quelque chose qui ressemble à ça :

moi j'ai ça :
, il n'y a aucun effet de profondeur et les tuiles ne sont pas bien positionnées.
Merci

7
Général / Re : TileMap isometric
« le: Avril 28, 2014, 02:21:12 pm »
Sujet édité , si vous avez une question sur le code en java n'hésitez pas

8
Général / TileMap isometric
« le: Avril 28, 2014, 12:52:12 pm »
Bonjour,
Je code en java avec jsfml mais vous trouverez peut etre une solution à mon problème, j'essaye de faire du tile maping isometric mais le rendu n'est pas top:'(.
Voici mon code:
public class Draw {
        public static void draw(RenderWindow g){
                Texture tex = new Texture();
                try {
                        tex.loadFromFile(Paths.get("sprites/Terrain/1926.png"));
                } catch (IOException e) {
                        // TODO Bloc catch généré automatiquement
                        e.printStackTrace();
                }
                Sprite sprite = new Sprite(tex);
                for(int i=0;i<10;i++){
                          for (int j = 0 ;j <10; j++){
                           int x = (j * 50 / 2) + (i * 50 / 2); // calcule la nouvelle position
                            int y = (i * 50 / 2) - (j * 50 / 2);
                                sprite.setPosition(new Vector2f(x,y));
                                g.draw(sprite);
                        }
                };
               
        }
}
Et voici ce que j'obtiens :

L'image qui me sert à créer le tilemap:

Je voudrais savoir si le code qui calcule les nouvelles coordonnées est bon et au niveau de "View" ce que je dois faire.
Cordialement

9
Général / Choix structure
« le: Février 12, 2014, 10:38:37 pm »
Bonjour,
Je suis en train de créer un petit jeu en 2d avec une vue de dessus . Ce sera une sorte de petit rpg mais je ne sais pas quel choix de structure faire pour stocker le terrain. Jusqu'à présent j'avais stocké dans un tableau à 2 dimensions d'entiers un nombre correspondant à une texture . Pour éviter de stocker tous les pixels je ne remplissais que une case sur 30 (les sprites font 30 px de large) .  J'ai vu que les vertex semblent être assez adapté pour faire ce genre de chose.
J'aimerai donc votre avis sur la question .
Cordialement

10
Général / Re : Problème affichage dynamqique
« le: Février 11, 2014, 08:55:36 pm »
juste par contre si , j'ai plusieurs fonctions qui dessinent dans la même fenêtre, par exemple :
    window.display();
         personnage.draw(window);
terrain.draw(window)......

window.clear() je le mets ou?

11
Général / Re : Problème affichage dynamqique
« le: Février 11, 2014, 08:01:42 pm »
Oui j'avais oublié , merci  ::)

12
Général / Problème affichage dynamqique
« le: Février 11, 2014, 07:19:03 pm »
Bonjour,
J'ai un petit problème d'affichage , voici ce que j'ai :


Mon code est est très simple,  j'incrémente une variable x lorsque qu'on appuie sur une touche , mon problème c'est qu'une partie du cercle n'avance pas.
Mon code en java (très simple) :
   window.create(new VideoMode(640, 480), "Test");
      while (window.isOpen()) {
          window.display();
         personnage.draw(window);

et dans personnage.draw() :
   CircleShape circle = new CircleShape(20);
   circle.setPosition(new Vector2f(x,0));  // variable incrémenté
      g.draw(circle);

J'éspère que quelqu'un pourra trouver une solution .
Cordialement

Pages: [1]
anything