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

SDL Discussion :

Mouvement Player Diagonale


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Par défaut Mouvement Player Diagonale
    Dans le cadre du développement d'un jeu de shoot en 2D, je suis confronté a un probleme : je désire faire bouger en diagonale une surface représentant mon Player. Le mouvement du Player est de 7 pixels a chaque pas et j'ais raisonné comme suit :
    -le pas doit etre aussi "grand" en diagonale qu'en ligne droite, d'où:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
             *A                     AB = 1 pas en diagonale 
                    *B               AC = 1 pas "normal"
              *C
    -Comme on ne peux modifier l'ordonnée et l'abscisse d'une image en meme temps, j'ai utilisé le théorème de Pythagore ( collège, quand tu nous tient ) pour déterminer de combien de pixels le player doit bouger d'abord en ordonnée, puis en abscisse ( environ 5 en X et Y ). J'ais donc appliqué le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si "Mouvement du Player", Alors 5 += Player_x; SDL_Delay(1); 5 += Player_y;
    Le code marche tres bien, c'est juste que l'effet est tres disgracieux
    Avez vous une méthode pour déplacer une surface en diagonale ?

    De plus, je suis allé faire un tour dans les précédents posts ( ceux d'il y a 6 mois ) et je suis tombé sur ça :
    Si tu es en C++ tu peux aussi utiliser les maps
    Le sujet était la mise en place d'un fichier de configuration performant, mais je ne voit pas du tout ce que sont les maps ... ( a part maps de jeu )
    Pouvez vous m'en dire plus sur ces maps ??

  2. #2
    Membre éprouvé Avatar de razmott
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 133
    Par défaut
    Salut !

    c'est juste que l'effet est tres disgracieux
    C'est à dire ? Il y a des clignotements, le personnage n'a pas une animation fluide,... ?

    Pouvez vous m'en dire plus sur ces maps ??
    En C++, les maps sont des structures qui s'utilisent (presque) comme des tableaux. Petite différence cependant : l'indexage se fait par un type quelconque.
    Par exemple tu peux référencer des objets via une chaîne ou un pointeur. Dans le cas d'un nombre, le tableau n'est plus linéaire et devient plus simple à utiliser, mais les maps perdent alors leur utilité première.

    Bon coding !
    @+

  3. #3
    Membre confirmé Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Par défaut
    Salut !

    Citation:
    c'est juste que l'effet est tres disgracieux
    C'est à dire ? Il y a des clignotements, le personnage n'a pas une animation fluide,... ?
    En fait le personnage fait d'abord 5 pixels de déplacement en X, puis 5 en Y : cela donne un mouvement "rectangulaire" quoi ...

    En C++, les maps sont des structures qui s'utilisent (presque) comme des tableaux. Petite différence cependant : l'indexage se fait par un type quelconque.
    Par exemple tu peux référencer des objets via une chaîne ou un pointeur. Dans le cas d'un nombre, le tableau n'est plus linéaire et devient plus simple à utiliser, mais les maps perdent alors leur utilité première.
    Peux tu me donner un peu de code stp ?

  4. #4
    Membre éprouvé Avatar de razmott
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 133
    Par défaut
    Salut !

    En fait le personnage fait d'abord 5 pixels de déplacement en X, puis 5 en Y : cela donne un mouvement "rectangulaire" quoi ...
    Et si tu enlevais le SDL_Delay ?

    Peux tu me donner un peu de code stp ?
    Pas de problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    std::map<std::string/*ça c'est le nom*/,
             std::string/*et ça, le pays*/> AssociationNomPays;
    AssociationNomPays["Chirac"] = "France";
    AssociationNomPays["Bush"] = "USA";
    AssociationNomPays["razmott"] = "France";
    Voilà !

    @+

  5. #5
    Membre confirmé Avatar de ironzorg
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 288
    Par défaut
    Et si tu enlevais le SDL_Delay ?
    Euh... Ca reviendrais a modifier X et Y en meme temps donc ça ne marche normalement pas ( j'ais pas testé encore )

    std::map<std::string/*ça c'est le nom*/,
    std::string/*et ça, le pays*/> AssociationNomPays;
    AssociationNomPays["Chirac"] = "France";
    AssociationNomPays["Bush"] = "USA";
    AssociationNomPays["razmott"] = "France";
    Ca pourrais m'etre utile merci

    PS : j'ais une autre question. Pas plus tard que cet aprem, j'ais entrepris de moduler un peu mon code, et un probleme lors de la compilation est survenu:
    ( dsl je n'ais pas de code sur cet ordi ) c'était lors de la création d'un objet de type
    Tile *tile[TOTAL_TILES];
    et cela me disait "declaration of variable shadows parameter" ( je ne suis pas sur je confirmerais )
    Une réponse à ça ?

  6. #6
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par ironzorg
    Une réponse à ça ?
    Cela veut dire que tu as une variable qui a le même nom qu'un paramètre de ta fonction...

    Jc

  7. #7
    Membre éclairé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Par défaut
    Citation Envoyé par ironzorg
    Comme on ne peux modifier l'ordonnée et l'abscisse d'une image en meme temps,
    Depuis quand ? et pourquoi ?

Discussions similaires

  1. [PLAYER] Désinstaller flash player 7
    Par Olivier Delmotte dans le forum Flash
    Réponses: 10
    Dernier message: 02/12/2004, 18h24
  2. [FLASH MX]le mouvement et les sacades
    Par VincentB dans le forum Flash
    Réponses: 6
    Dernier message: 16/01/2004, 23h42
  3. Un .exe a-t-il besoin d'un player?
    Par chezjm dans le forum Flash
    Réponses: 2
    Dernier message: 13/11/2003, 14h49
  4. détection de player
    Par mat10000 dans le forum Flash
    Réponses: 8
    Dernier message: 23/10/2003, 16h36
  5. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09

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