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 - leroivi

Pages: [1]
1
Général / Re : Configuration de touche
« le: Août 18, 2015, 10:55:30 am »
Merci pour tout, je pense que je peux passer le sujet en résolu (si je trouve comment on fais)

De plus j'aimerai revenir sur mon précédent message pour éviter la confusion dans ceux qui le liront : sf::Event est une union et non une classe donc pour comparer 2 sf::Event il faut le faire champ par champ car le comparer dans sa globalité est dangereux. En effet, par exemple probablement inexact mais représentatif, si vous appuyer sur 'r', les champs vont se remplir selon la structure Keypressed puis vous bougez la souris, les champs vont se remplir selon la structure Mousemove qui est plus grande que Keypressed, puis vous rappuyer sur 'r' vous n'obtiendrez pas la même valeur dans la globalité de l'union que la première fois puisque la mémoire que n'utilise pas Keypressed sera comparé également, alors que les champs qui vous interressent seront identique. Voici pourquoi il faut comparé en champ par champ.

2
C'est une question de pédagogie mais préférer voir un exemple le plus complet possible pour apprendre dessus est un point de vue défendable  ;), ce qui l'est moins par contre c'est de ne pas suivre les cours et la documentation  >:(, c'est obligatoire car il y a des choses que tu ne pourra deviner sans : par exemple, les templates dont tu vas avoir besoin pour faire ta map.

Je connais pas ton niveau alors voici 2 petites lignes d'explications:
un template te permet de faire des classes qui vont être valable avec plusieurs type et la map est templatisée. La map sert à associer un objet d'un premier type appellé key à un autre objet qui sera la valeur, ainsi à partir d'une clé que tu connais tu pourras retrouver une valeur.

Dans ton cas tu veux retrouver un rectangle à partir d'une chaine de caractère, donc le code que tu cherche devrait ressembler à ceci :
std::map<std::string, sf::RectangleShape> m_map;
std::string new_name = generation_nom();
m_map[new_name] = sf::RectangleShape(sf::Vector2f(120,50));

@Laurent Aytio n'a jamais dit que sont problème venait de la sfml, c'est simplement un utilisateur de la sfml alors lorsqu'il a un problème il se tourne vers la communauté la plus proche  :-[. Ce forum est vraiment fait exclusivement pour des problèmes sur la sfml malgré que l'on soit dans Aide>Général ?  :-\ Il faudrait peut être créer alors un nouveau topic qui serait de l'aide encore plus général, puisque bien que je comprenne que le retour exclusivement sur la sfml soit intéressant pour corriger la bibliothèque et partager les applications spécifiques, beaucoup de problèmes en programmation viennent d'algorithmie et donc je suppose que pas mal de devs voudrait en parler entre eux, je trouverais ça dommage qu'il doivent le faire sur un autre forum que celui de leur communauté la plus proche  :-X.

3
Général / Re : Configuration de touche
« le: Août 13, 2015, 08:27:43 am »
Merci, cette solution me parait pas mal, c'est plutôt simple et efficace.  :)

J'ai tout de même une petite question pour ceux qui l'ont lu : pourquoi passer par ses structures pour retenir la touche au lieu de stocker directement un Event ?  ???
Sa map pourrait être un std::map<std::String, sf::Event> (ou une clé plus rapide mais la string a l'avantage d'être claire) et son Test deviendrait juste

if(Event==Keys["Shoot"])
{
    shoot();
}

ou bien si l'opérateur == n'est pas implémenté, ou s'il veut être plus rigoureux, on compare champs par champs.

bool TestEvent(sf::Event k, sf::Event e)
{
   if(e.type == k.type)
   {
      switch(e.type)
      {
      case sf::Event::MouseButtonPressed:
      case sf::Event::MouseButtonReleased:
         if(k.mouseButton.button==e.mouseButton.button) return true;
         break;
      case sf::Event::KeyPressed:
      case sf::Event::KeyReleased:
         if(k.key.code == e.key.code) return true;
         break;
      default:
         break;
      }
   }
   return false;
}

On tombe sur une fonction à peu près similaire, certes, mais on a plus de structure différente, on peut pleinement profiter des nuances que propose la classe sf::Event et on a un Event de stocké que l'on pourrait utiliser à d'autre fin (on sait jamais, j'ai pas d'application qui vienne en tête mais je suis sur que ça peut être utile de donner un event qui s'est pas réellement produit). 8)

4
Général / Re : Configuration de touche
« le: Août 12, 2015, 06:25:51 pm »
Merci pour les réponses,

@S66 Oui effectivement avec des touches fixés c'est simple et c'est comme ça que j'ai commencé à developper et tester ma création, mais ce que je voudrais c'est que l'utilisateur puisse choisir sa touche, par défaut les flèches mais s'il veut utiliser "z" pour monter et "s" pour descendre ou encore le joystick d'une manette et bien il pourra le configurer au travers un menu

@Kernel panik Je ne connais pas le pattern de commande mais en googlant un peu j'ai trouvé des trucs intéressant alors je me pencherais dessus quand j'aurais un peu de temps libre et que je serais plus motivé que ce soir. Merci pour la piste

En effet, pour un pong certaines choses peuvent paraitre disproportionné mais le pong en lui même ne m'intéresse pas, je cherche à trouver des techniques dans le développement de jeux vidéo en commençant par un jeu simple afin de ne pas se trouver dans une impasse mais je cherche du code, des méthodes, une façon de penser qui seront applicable dans des jeux de plus grande ampleur. C'est dans cette optique que pour mon pong je vais ajouter ce menu de configuration, un menu d'acceuil, un menu de pause, une gestion du son, et une gestion de collision que je tente de faire générique (et peut être plein d'autre chose qui me viendront à l'esprit).

Merci pour votre aide, j'espère pouvoir un jour être suffisament à l'aise pour faire partie de la communauté sfml et venir en aide à mon tour.

5
Général / [RESOLU] Configuration de touche
« le: Août 12, 2015, 03:41:14 pm »
Bonjour, je suis nouveau sur sfml et comme tout le monde je vais commencer par faire un pong  ;D
Dans mon idée, je souhaitais faire un menu de configuration des touches pour que le joueur puisse décider de ses contrôles, seulement avec le système d'évènement de sfml j'ai du mal à voir comment bouger mes fonctions d'un case à l'autre :/

J'ai une petite idée derriere la tête mais je ne l'ai pas testé et je sens déjà la panique me gagner : Une map contiendrait en clé la keycode et en valeur un pointeur vers une fonction, ainsi lorsque l'évènement se produit j'appelle la fonction qui est à la keycode. Ainsi pour configurer les touches je pourrais swapper les pointeurs.
Pensez vous ce système viable ou je vais me donner du mal pour rien ?

Mais je suppose qu'il doit y avoir des gens qui ont déjà construit des menu d'assignation de touche, j'aimerai également savoir quelle à été leur stratégie.

Merci d'avance pour vos réponses.

Pages: [1]