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

Pages: « Précédente 1 [2] 3 4 ... 7 Suivante »
16
Général / Re : Configuration de touche
« le: Août 13, 2015, 02:22:38 pm »
En relisant attentivement, l'utilisation d'une classe dédiée n'est pas clairement justifiée.
En effet, on peut utiliser directement des sf::Event mais alors il faut choisir quelles données sont utilisées. Par exemple, on peut ignorer la position de la souris lors d'un clic. Du coup c'est un peu de la bidouille.
C'est probablement ce qui a motivé la création d'une classe dédiée : ne pas manipuler de données inutiles. Cela me semble plus propre.

17
Général / Re : Configuration de touche
« le: Août 12, 2015, 07:14:28 pm »
Ce petit tutoriel du wiki va probablement t'intéresser : Manage dynamic key binding.

18
Général / Re : Redimensionnement
« le: Juillet 25, 2015, 03:29:39 pm »
Il y a la réponse à ta question dans le tutoriel dédié à la création de fenêtre.

19
Audio / Re : sf::Listener
« le: Juillet 05, 2015, 12:58:46 pm »
D'après ce que j'ai compris, on peut reformuler le problème ainsi :
Si on représente une caméra par une sf::View (capteur photographique) et un sf::Listener (microphone), alors on ne peut avoir qu'une seule caméra car on ne dispose que d'un unique sf::Listener.

La question est alors de savoir comment passer outre cette limitation.

D'après quelques recherches, il y a au moins ces deux méthodes :
  • créer plusieurs contextes OpenAL. (forum Orgre3D)
  • ruser en gardant un unique listener fixe et en translatant tous le émetteurs. (forum OpenAL)

20
Fenêtrage / Re : fenetre
« le: Mai 11, 2015, 08:32:08 pm »
Bonsoir,

Tu peux recentrer tes objets lorsque la fenêtre est redimensionnée en réagissant à l’évènement sf::Event::Resized. (voir le tutoriel)

Edit:
J'en profite pour te faire remarquer que tu peux profiter de la surcharge de l'opérateur de division sur les vecteurs.
sf::Vector2f windowCenter = sf::Vector2f(window.getSize()) / 2.f;

21
Sachant que ton jeu sera capable d'accéder aux ressources en clair, il est évident qu'il n'y a pas de méthode incassable. Comme dit Laurent, ça ne sert à rien.
Il n'y a pas à ma connaissance de méthode canonique pour accomplir ce que tu veux. Cependant, je pense que tu peux par exemple mettre toutes tes ressources dans une archive compressée et/ou appliquer une transformation bijective pour mettre un peu de pagaille dans les données.
J'espère que cela t'aura aidé.

22
Graphique / Re : intégrer les images dans mon code
« le: Avril 12, 2015, 06:57:08 pm »
Donc, tu veux que l'image soit créé dans l'exécutable, sans aucune ressources extérieure ?
Bonne chance.
Je tiens à remercier S66 pour cette pertinente reformulation.

Nigel, tu peux le faire simplement à la main (sans outil tiers) en générant un tableau d'octets dans un fichier C++ à partir de ton fichier image et le charger avec loadFromMemory.

Voici un sujet sur le forum anglais avec une réponse très claire de Laurent ;) (réponse #7)
Je l'ai trouvé avec le mot clé embed.

23
Les informations nécessaires à la résolution de ton problème ont déjà été données et elles sont aussi dans le tutoriel officiel.
Tu dois réussir à résoudre ton problème avec ça.
Citation de: Laurent
La fonction loadFromFile échoue parfois sans raison apparente. Première chose à faire, vérifiez le message d'erreur affiché par SFML dans la sortie standard (la console). Si le message est "unable to open file", assurez-vous que le répertoire de travail (qui est le répertoire relativement auquel tout fichier sera interprété) est celui auquel vous vous attendez : lorsque vous lancez votre application depuis l'explorateur de fichiers, le répertoire de travail est le répertoire de l'exécutable, pas de problème généralement dans ce cas ; mais si vous lancez votre programme depuis votre EDI (Visual Studio, Code::Blocks, ...) alors le répertoire de travail est parfois le répertoire du projet. Pas de panique : cela peut normalement être modifié directement dans les options de votre projet.

24
Général / Re : Problème de rotation
« le: Mars 05, 2015, 09:44:53 pm »
Autre remarque : tu utilises atanf pour calculer un angle. Déjà, c'est une fonction C, mais en plus atanf donne un angle modulo π. Tu veux probablement calculer un angle modulo 2π. Pour cela, tu peux utiliser atan2.

25
Général / Re : Problème de rotation
« le: Mars 05, 2015, 09:34:04 pm »
Effectivement, je n'avais pas bien compris ton problème.
Dans ce cas un setOrigin paraît adapté.
m_masque.setOrigin(m_mask.getPoint(0));

Tu peux aussi définir la position de tes points autrement pour avoir celui qui t'intéresse directement en (0,0).

26
Général / Re : Problème de rotation
« le: Mars 05, 2015, 09:08:42 pm »
Bonsoir,

Si je comprends bien ton problème, tu veux faire tourner un objet autour d'un point donné.
En effet, tu peux t'en sortir avec setOrigin. Tu peux définir la position de l'objet au niveau du point de rotation et définir la position relative à ce point avec setOrigin.
Cependant, cela ne me semble pas être une solution très propre étant donné que l'origine et la position d'un objet ont une signification bien précise et il me semble impropre de les dénaturer de la sorte. En revanche on peut imaginer un objet auxiliaire servant à définir un point d'attache avec des transformations, autrement dit un repère local.
Concrètement, tu peux définir un classe Node qui est Drawable et Transformable et qui contient des objets fils.
Tu peux t'inspirer du tutoriel officiel.

27
Général / Re : Impossible de faire passer un this en argument
« le: Février 28, 2015, 01:54:30 pm »
Il y a deux fois tower (en argument du constructeur et en attribut), ça ne va pas poser de problèmes ?
Non, ça ne pose pas de problème.
Tu peux trouver une explication ici.

28
Général / Re : Impossible de faire passer un this en argument
« le: Février 28, 2015, 12:00:23 pm »
Si on simplifie davantage le code que tu donnes, il apparaît que le code suivant serait à l'origine du problème.
Pourtant, ce code est licite est compilé sans problème. Le problème doit venir d'ailleurs. Tu peux essayer de simplifier ton code jusqu'à qu'il soit valide pour déterminer la source du problème.

class UnitTower;

class Shoot
{
        public:
                Shoot(UnitTower* tower)
                 : tower(tower)
                {}

        protected:
                UnitTower* tower;
};

class UnitTower
{
        public:
                void update()
                {
                        Shoot shoot(this);
                }
};

int main()
{
        return 0;
}

29
Général / Re : Gravité et Saut
« le: Février 17, 2015, 11:52:59 am »
La façon dont fonctionne le mouvement du personnage n'est pas très claire avec le code que tu as mis.
Cependant je crois que tu pourrais faire sauter ton personnage en lui donnant une vitesse verticale lors d'un saut.

Sinon, quel est l'intérêt de ton timeJump ?

Autre remarque : tu mélanges accélération et force, ce qui est une horreur pour un physicien. Ces deux grandeurs n'ont pas la même unité (on dit qu'elle ne sont pas homogènes) donc leur somme n'a pas de sens physique.
De plus, des corps de masses différentes et donc de poids différents ne tomberaient pas à la même vitesse, ce qui est bizarre si il n'y a pas d'autres forces que le poids. En l'occurrence, tu devrais ajouter l'accélération de la pesanteur (le fameux g de l'ordre de 10 m/s sur Terre) et non le poids à ton accélération.

30
Graphique / Re : Crash avec target.draw(*sprite, states)
« le: Février 08, 2015, 12:27:22 pm »
Quel est le type du membre m_objects ?

Pages: « Précédente 1 [2] 3 4 ... 7 Suivante »
anything